这是我的挑战:
令人惊讶的是,网络上有很多解决方案,但几乎没有一个可行。
我尝试过的一些事情:
var removableDeviceList = await KnownFolders.RemovableDevices.GetFoldersAsync();
if (removableDeviceList.Count > 0)
{
StorageFolder targetDevice = removableDeviceList.FirstOrDefault();
ListBox.Items.Add(targetDevice.Name);
}
目前为止工作正常,但后来停滞了。
是的,清单库中激活了图片库,文件定义,可移动设备等功能。我不敢相信这个基本的事情真的很难解决吗?
答案 0 :(得分:0)
有一个示例我在带有Windows 10 IoT核心版的Raspberry Pi 3上进行了测试。这个对我有用。
源文件夹:USB驱动器根目录中的测试文件夹(E:\ test)。一共有三个文件:hello.txt,welcome1.png,welcome3.jpg。
目标文件夹:KnownFolders.DocumentsLibrary根文件夹。
以下代码将测试文件夹中的文件完整复制到KnownFolders.DocumentsLibrary根文件夹。
public async void USBDriveCopyFolder()
{
var targetFolderName = "test";
var removableDevice = (await KnownFolders.RemovableDevices.GetFoldersAsync()).FirstOrDefault();
if (null == removableDevice)
{
System.Diagnostics.Debug.WriteLine("removableDevice is null !");
return;
}
System.Diagnostics.Debug.WriteLine(removableDevice.Name + ":\n");
var sourceFolder = await removableDevice.GetFolderAsync(targetFolderName);
if (null == sourceFolder)
{
System.Diagnostics.Debug.WriteLine(targetFolderName + " folder is not found !");
return;
}
System.Diagnostics.Debug.WriteLine(sourceFolder.Name + ":\n");
var destFodler = KnownFolders.DocumentsLibrary;
if (null == destFodler)
{
System.Diagnostics.Debug.WriteLine("KnownFolders.DocumentsLibrary folder get failed !");
return;
}
var files = await sourceFolder.GetFilesAsync();
foreach (var file in files)
{
System.Diagnostics.Debug.WriteLine(file.Name + "\n");
await file.CopyAsync(destFodler);
}
}
package.appxmanifest中的设备功能:
<Applications>
...
...
<Application>
<Extensions>
<uap:Extension Category="windows.fileTypeAssociation">
<uap:FileTypeAssociation Name="txt">
<uap:SupportedFileTypes>
<uap:FileType>.txt</uap:FileType>
</uap:SupportedFileTypes>
</uap:FileTypeAssociation>
</uap:Extension>
<uap:Extension Category="windows.fileTypeAssociation">
<uap:FileTypeAssociation Name="jpg">
<uap:SupportedFileTypes>
<uap:FileType>.jpg</uap:FileType>
</uap:SupportedFileTypes>
</uap:FileTypeAssociation>
</uap:Extension>
<uap:Extension Category="windows.fileTypeAssociation">
<uap:FileTypeAssociation Name="png">
<uap:SupportedFileTypes>
<uap:FileType>.png</uap:FileType>
</uap:SupportedFileTypes>
</uap:FileTypeAssociation>
</uap:Extension>
</Extensions>
</Application>
</Applications>
<Capabilities>
<uap:Capability Name="picturesLibrary" />
<uap:Capability Name="removableStorage" />
<uap:Capability Name="documentsLibrary" />
</Capabilities>