如何在没有 "Enviroment" 的情况下获取 windows 通用应用程序中某些特殊文件夹的路径
How to get a path to some special folders in windows universal apps without "Enviroment"
通常,要将一些文件放到不同设备上的本地目录中(例如某些 phone 上的 mydocuments),我们可以使用类似 environment.getfolderpath(environment.specialfolder.mydocuments)
的方式获取该目录。但如果我是对的,这在 windows 通用应用程序中不起作用(可能是因为 x-box),环境只得到 .GetEnviromentVariable(s)
。
所以问题是 - 我们如何在任何 windows-设备 上获取到某个本地目录的路径(像 mydocuments、applicationdata 或类似的文件夹,而不是临时或当前目录或应用程序文件夹)?
请在 Windows.Storage
命名空间中使用 KnownFolders
class。
例如,要访问 PictureLibrary
使用:
StorageFolder storageFolder = KnownFolders.PicturesLibrary;
StorageFolder
依次有一个只读 属性 Path
。你应该重新考虑使用新的 API.
操作文件的整个概念
例如,要创建图像文件,您可以使用以下内容:
StorageFile file =
await storageFolder.CreateFileAsync("sample.png",
CreationCollisionOption.ReplaceExisting);
您可以在 MSDN 上找到更多示例:KnownFolders class。
通常,要将一些文件放到不同设备上的本地目录中(例如某些 phone 上的 mydocuments),我们可以使用类似 environment.getfolderpath(environment.specialfolder.mydocuments)
的方式获取该目录。但如果我是对的,这在 windows 通用应用程序中不起作用(可能是因为 x-box),环境只得到 .GetEnviromentVariable(s)
。
所以问题是 - 我们如何在任何 windows-设备 上获取到某个本地目录的路径(像 mydocuments、applicationdata 或类似的文件夹,而不是临时或当前目录或应用程序文件夹)?
请在 Windows.Storage
命名空间中使用 KnownFolders
class。
例如,要访问 PictureLibrary
使用:
StorageFolder storageFolder = KnownFolders.PicturesLibrary;
StorageFolder
依次有一个只读 属性 Path
。你应该重新考虑使用新的 API.
例如,要创建图像文件,您可以使用以下内容:
StorageFile file =
await storageFolder.CreateFileAsync("sample.png",
CreationCollisionOption.ReplaceExisting);
您可以在 MSDN 上找到更多示例:KnownFolders class。