Path.GetTempPath() 在 Windows 商店应用程序中不可用

Path.GetTempPath() not available in Windows Store Apps

我正在尝试使用以下方法获取临时目录:

string tempFolder = System.IO.Path.GetTempPath();

但是那个方法不存在。不过我可以在智能感知中看到所有其他方法。

为什么那个方法不可用。在 Windows Store 应用程序中是否有另一种获取临时文件夹位置的方法?

在您的 ApplicatonData 存储中创建临时文件。您必须使用 GUID 或时间戳生成您自己的文件名。

Windows.Storage.StorageFolder temporaryFolder = ApplicationData.Current.TemporaryFolder;
StorageFile sampleFile = await temporaryFolder.CreateFileAsync("dataFile.txt", CreationCollisionOption.ReplaceExisting);
await FileIO.WriteTextAsync(sampleFile, formatter.Format(DateTime.Now));

A Windows Store App 是沙盒应用,因此您需要读取和写入沙盒应用程序文件夹内的文件夹。您将无法像您希望的那样写入传统的临时文件夹 C:\Windows\TEMP,是的,您真倒霉。您可以访问应用程序文件夹之外的其他几个位置,但在大多数情况下,您的访问权限是有限的。

KnownFolders class 是您访问以下位置的方式。

  • 相机胶卷
  • 文档库
  • 家庭组
  • 媒体服务器设备
  • 音乐库
  • 图片库
  • 播放列表
  • 可移动设备
  • 保存图片
  • 视频库

KnownFolders class on MSDN