【问题标题】:Getting all files in UWP app folder获取 UWP 应用文件夹中的所有文件
【发布时间】:2016-02-17 23:35:57
【问题描述】:

对于UWP,获取app本地文件夹中的所有文件很简单:

IReadOnlyList<StorageFile> files = await ApplicationData.Current.LocalFolder.GetFilesAsync();

您现在可以遍历文件列表,甚至可以获取有关单个文件的更多信息。

我想要一个类似的所有文件获取器用于应用程序文件夹,例如,考虑存储应用程序 *.png 文件的 /Assets 文件夹。 具有已知名称的单个文件没有问题;我可以很容易地将其称为:

StorageFile.GetFileFromApplicationUriAsync(new Uri(@"ms-appx:///Assets/StoreLogo.png"))

因此,我的问题是,是否有类似的方法可以获取应用文件夹中的所有文件,例如 /Assets 文件夹?从逻辑上讲,它应该类似于StorageFile.GetFilesFromApplicationFolderUriAsync(new Uri(@"ms-appx:///Assets")),但不知道是否存在与上面显示的 LocalFolder 等效的内容。

【问题讨论】:

    标签: c# windows-runtime windows-10 uwp


    【解决方案1】:

    您可以使用Package.InstalledLocation 访问您的安装文件夹。因此,您的代码可能如下所示:

    StorageFolder appInstalledFolder = Windows.ApplicationModel.Package.Current.InstalledLocation;
    StorageFolder assets = await appInstalledFolder.GetFolderAsync("Assets");
    var files = await assets.GetFilesAsync();
    

    【讨论】:

    • 呸!那很快,谢谢。有趣的是,我不久前使用了 Package.InstalledLocation 并专注于 ms-apps:/// 方案让我忘记了。再次感谢 - 你节省了我的时间。
    • @user5525674 没问题,我只是路过;)
    • 对我来说,GetFolderAsync("SomeFolder") 为空会抛出异常。
    • @jchristof 如果文件夹不存在,那么它会抛出异常——这是正常的。
    【解决方案2】:
    var storageFolder = await ApplicationData.Current.LocalFolder.GetFolderAsync("Assets");
    var files = await storageFolder.GetFilesAsync();
    

    https://docs.microsoft.com/en-us/uwp/api/windows.storage.applicationdata

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-23
      • 2010-12-18
      • 2017-04-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多