使用Windows.Devices.Enumeration中的DeviceID查找C#Windows 10 IoT Core中可移动驱动器(USB)的驱动器号?

使用Windows.Devices.Enumeration中的DeviceID查找C#Windows 10 IoT Core中可移动驱动器(USB)的驱动器号?,c#,uwp,detection,raspberry-pi2,windows-10-iot-core,C#,Uwp,Detection,Raspberry Pi2,Windows 10 Iot Core,我正在尝试扫描一个插入运行Windows 10 IoT Core的Raspberry Pi的USB驱动器,以查找特定文件夹中的特定文件。我目前能够使用Windows.Devices.Enumeration.DeviceWatcher检测USB驱动器何时添加或从设备中删除,并可以使用它查找设备ID。我使用演示项目完成了这项工作。我知道StorageDevice.FromId()通常适用于此,但它似乎不适合Windows 10 IoT Core。我还尝试使用KnownFolders.Removabl

我正在尝试扫描一个插入运行Windows 10 IoT Core的Raspberry Pi的USB驱动器,以查找特定文件夹中的特定文件。我目前能够使用Windows.Devices.Enumeration.DeviceWatcher检测USB驱动器何时添加或从设备中删除,并可以使用它查找设备ID。我使用演示项目完成了这项工作。我知道StorageDevice.FromId()通常适用于此,但它似乎不适合Windows 10 IoT Core。我还尝试使用KnownFolders.RemovableDevices在添加设备时循环所有设备,但这总是会立即使应用程序崩溃。我希望能够使用DeviceId查找USB设备的驱动器号,然后检查驱动器是否为空,如果不是空的,请在该设备中导航到我期望的目录和文件


提前感谢您的帮助

您可以在演示项目的场景2中的
handleraded()
中添加以下代码行

var removableDevices = KnownFolders.RemovableDevices;

// Get all driver letters
var folders = await removableDevices.GetFoldersAsync();

if (folders.Count > 0)
{
    foreach (StorageFolder folder in folders)
    {
        System.Diagnostics.Debug.WriteLine(folder.Name);

        // Check the driver letter is empty or not.
        var items = folder.GetItemsAsync();
        if (items == null)
        {
            System.Diagnostics.Debug.WriteLine("There are no files and folders.");
        }
    }
}
同时,您需要声明要访问的文件类型的
功能
,例如,您可以在Package.appxmanifest中添加以下行

这对我有用。希望对你有帮助

<uap:Capability Name="picturesLibrary" />


添加时,该代码确实可以枚举usb驱动器,但没有说明usb驱动器何时为空。我已经检查过,确保usb实际上是空的,而且是空的。不过,这帮了大忙。我将继续在代码中查找问题所在,然后返回给您。我将行I更改为
if(items==null)
if(items.GetResults().Count==0)
并且似乎起作用的应该是
GetItemsAsync
调用中的
await
:整行应该是
var items=await folder.GetItemsAsync()。现在,
的类型将为
IReadOnlyList