none
WinRT中如何根据文件的具体路径或者文件名称,获取到文件对象。 RRS feed

  • 问题

  • 如题:

    我用文件选取器选择了一个文档下的文件,并记录到独立存储中。

    当再次打开app的时候,我想直接根据存储的文件路径或者文件名称直接获取到文件对象。

    目前的做法是枚举所有的文档下的文件夹,然后在循环文件夹下的文件进行比较,如果文件名称一样就返回这个文件对象。

    有没有简便的方法,根据存储的文件路径或者文件名称直接获取到文件对象。

    求教各位~

    2015年7月20日 14:50

答案

全部回复

  • 你好

    应用存储中获取StorageFile的方式与磁盘文件系统的方式类似,可以通过文件的完全路径来操作。

    StorageFile.GetFileFromPathAsync | getFileFromPathAsync method

    这里的Path就是你存储文件的路径。另外还可以通过Uri的方式来获取:

    StorageFile.GetFileFromApplicationUriAsync | getFileFromApplicationUriAsync method

    希望对你有帮助,谢谢。


    希望我的答案能帮助更多的人。


    2015年7月21日 1:01
    版主
  • StorageFile file = await StorageFile.GetFileFromPathAsync(path);

    这个方法确实可以获取到文件对象。但是目前有个问题,在wp8.1中没问题。在Win8.1中相册里面有两个图片,其中一个图片抛出异常:

    “System.UnauthorizedAccessException”类型的第一次机会异常在 mscorlib.dll 中发生

    WinRT 信息: 无法访问指定的文件或文件夹(C:\Users\2520\Pictures\Camera Roll\WIN_20150624_150043.JPG)。该项目没有位于应用程序可以访问的位置(包括应用程序数据文件夹、可通过许可范围进行访问的文件夹以及保存在 StorageApplicationPermissions 列表中的项目)中。请确认未使用系统或隐藏文件属性标记该文件。

    我试了试,只有这一个图片报这个异常,不解!

    2015年7月21日 10:04
  • 你好这应该是文件本身属性的问题,你可以多测试几张图片,以确认问题。如果确认是文件本身的问题,在读取这种图片时,提示给用户一个异常就可以了。

    希望我的答案能帮助更多的人。

    • 已标记为答案 紫柔 2015年7月27日 9:40
    2015年7月22日 2:04
    版主
  • 确实是只有这一个图片提示异常,其他的都没问题。
    • 已标记为答案 紫柔 2015年7月28日 2:27
    2015年7月22日 7:46