创建一个适用于所有系统的类库,并解决围绕存储(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>`但是给了我一个警告
严重性代码描述项目文件行抑制状态警告名称空间“http://schemas.microsoft.com/appx/manifest/foundation/windows10”中的元素“功能”在命名空间“http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities'”中具有无效的子元素“功能”。可能需要的元素列表:名称空间“http://schemas.microsoft.com/appx/manifest/foundation/windows10”中的“能力”,命名空间“http://schemas.microsoft.com/appx/manifest/uap/windows10”中的“功能”,命名空间“http://schemas.microsoft.com/appx/manifest/foundation/windows10”中的“功能”,命名空间“http://schemas.microsoft.com/appx/manifest/uap/windows10/4”中的“功能”,命名空间“http://schemas.microsoft.com/appx/manifest/uap/windows10/6”中的“能力”,命名空间“http://schemas.microsoft.com/appx/manifest/uap/windows10/7”中的“功能”以及命名空间“http://schemas.microsoft.com/appx/manifest/uap/windows10/3”中的“功能”,以及命名空间“http://schemas.microsoft.com/appx/manifest/uap/windows10/2”中的“能力”以及命名空间中的“http://schemas.microsoft.com/appx/manifest/foundation/windows10”中的“能力”。名称空间中的“CustomCapability”和“http://schemas.microsoft.com/appx/manifest/uap/windows10/4”以及“Dev.
我认为这意味着broadFileSystemAccess不起作用。UWP应用程序在文件系统的系统设置中显示,我允许它,但仍然失败。
所使用的文件路径的一个示例是
@"D:\Games\Genshin Impact/7z.dll"
@"D:\Games\Genshin Impact\7z.dll"
"D:\\Games\\Genshin Impact\\7z.dll"使用这两个文件库
System.IO文件和文件夹
Windows.StorageStorageFile & StorageFolder
我尝试过使用文件/文件夹选择器,它偶尔会起作用,但我想尽量避免使用它们,因为这是一个.DLL,可以像System.IO.File/文件夹和其他库那样使用。
任何帮助都将不胜感激。
编辑:算出来了,我不得不删除其他与存储相关的功能。
<uap:Capability Name="musicLibrary"/>
<uap:Capability Name="removableStorage"/>
<uap:Capability Name="picturesLibrary"/>
<uap:Capability Name="videosLibrary"/>
<uap:Capability Name="documentsLibrary"/>在此之后,我构建、停止它、不检查和重新检查系统设置中的文件权限,而不是生成和运行。
发布于 2022-04-02 08:07:16
想清楚了,我不得不删除其他与存储相关的功能。
<uap:Capability Name="musicLibrary"/>
<uap:Capability Name="removableStorage"/>
<uap:Capability Name="picturesLibrary"/>
<uap:Capability Name="videosLibrary"/>
<uap:Capability Name="documentsLibrary"/>在此之后,我构建、停止它、不检查和重新检查系统设置中的文件权限,而不是生成和运行。
发布于 2022-03-04 02:38:02
你靠近隧道尽头的灯光。您需要使用Windows.Storage api来访问带有路径的文件(enable app's broadFileSystemAccess feature)。如果要使用路径访问文件,请调用Windows.Storage.StorageFile.GetFileFromPathAsync方法。根据您的场景,请使用DependencyService调用本机GetFileFromPathAsync方法,然后返回可以直接在窗体中使用的文件数据。您可以参考这个例子,reply。
https://stackoverflow.com/questions/71333872
复制相似问题