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

时间:2016-10-18 15:52:13

标签: c# uwp detection raspberry-pi2 windows-10-iot-core

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

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

您可以在DeviceEnumerationAndPairing演示项目的scenario2中的handlerAdded()中添加以下代码行。

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.");
        }
    }
}

同时,您需要声明要访问的文件类型Capability,图片,例如,您可以在Package.appxmanifest中添加以下行。

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

<uap:Capability Name="picturesLibrary" />