制作一个适用于所有系统的类库,并围绕存储(system.io(进行解析。到目前为止,它适用于Winforms和Wpf,但未能适用于UWP。我还有总共3个内部存储驱动器
C:/
D:/
E:/
我可以从C驱动器获取文件和文件夹,但不能从D或E驱动器获取。我已将其添加到UWP Package.appxmanifest 中
xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
IgnorableNamespaces="uap mp rescap">`
<Capabilities>
<rescap:Capability Name="broadFileSystemAccess"/>
<uap:Capability Name="musicLibrary"/>
<uap:Capability Name="removableStorage"/>
<uap:Capability Name="picturesLibrary"/>
<uap:Capability Name="videosLibrary"/>
<uap:Capability Name="documentsLibrary"/>
</Capabilities>`
但是<重新映射:能力名称=";broadFileSystemAccess"/>正在给我一个警告
严重性代码描述项目文件行禁止显示状态警告命名空间中的元素"Capabilities"'http://schemas.microsoft.com/appx/manifest/foundation/windows10'已命名空间中的子元素"Capability"无效'http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"。预期的可能元素列表:命名空间中的"CapabilityChoice"'http://schemas.microsoft.com/appx/manifest/foundation/windows10'作为以及命名空间中的"Capability"'http://schemas.microsoft.com/appx/manifest/uap/windows10'以及命名空间中的"Capability"'http://schemas.microsoft.com/appx/manifest/foundation/windows10'作为以及命名空间中的"Capability"'http://schemas.microsoft.com/appx/manifest/uap/windows10/4"作为命名空间中的"Capability"'http://schemas.microsoft.com/appx/manifest/uap/windows10/6"作为命名空间中的"Capability"'http://schemas.microsoft.com/appx/manifest/uap/windows10/7"作为命名空间中的"Capability"'http://schemas.microsoft.com/appx/manifest/uap/windows10/3"作为命名空间中的"Capability"'http://schemas.microsoft.com/appx/manifest/uap/windows10/2"作为命名空间中的"CustomCapabilityChoice"'http://schemas.microsoft.com/appx/manifest/foundation/windows10'作为以及命名空间中的"CustomCapability"'http://schemas.microsoft.com/appx/manifest/uap/windows10/4"像'开发。。。。
我认为这意味着broadFileSystemAccess不起作用。UWP应用程序已经显示在文件系统的系统设置中,我允许它,但仍然失败。
使用的文件路径示例是
@"D:GamesGenshin Impact/7z.dll"
@"D:GamesGenshin Impact7z.dll"
"D:\Games\Genshin Impact\7z.dll"
使用了这2个文件库
System.IO
文件&文件夹
Windows.Storage
StorageFile&存储文件夹
我曾尝试使用文件/文件夹选择器,但它偶尔会起作用,但我想尽量避免使用它们,因为这是一个.DLL,可以像System.IO.File/Folder和其他库一样使用。
如有任何帮助,我们将不胜感激。
编辑:我想明白了,我不得不删除其他与存储相关的功能。
<uap:Capability Name="musicLibrary"/>
<uap:Capability Name="removableStorage"/>
<uap:Capability Name="picturesLibrary"/>
<uap:Capability Name="videosLibrary"/>
<uap:Capability Name="documentsLibrary"/>
在那之后,我构建了它,停止了它,在系统设置中取消检查并重新检查了文件权限。
我想明白了,我不得不删除其他与存储相关的功能。
<uap:Capability Name="musicLibrary"/>
<uap:Capability Name="removableStorage"/>
<uap:Capability Name="picturesLibrary"/>
<uap:Capability Name="videosLibrary"/>
<uap:Capability Name="documentsLibrary"/>
在那之后,我构建了它,停止了它,在系统设置中取消检查并重新检查了文件权限。
你靠近隧道尽头的灯光。您需要使用Windows.Storage
api访问路径为的文件(启用应用程序的broadFileSystemAccess
功能(。如果要访问路径为的文件,请调用Windows.Storage.StorageFile.GetFileFromPathAsync
方法。根据您的场景,请使用DependencyService
调用本机GetFileFromPathAsync
方法,然后返回可以直接在表单中使用的文件数据。你可以参考这个案例的回复。