You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在.NET MAUI中如何保存临时文件并获取对应路径?

.NET MAUI 跨平台临时文件存储与路径获取方案

1. 临时目录路径获取

MAUI 官方封装了跨平台文件系统访问API,无需单独做平台适配,直接调用 FileSystem.Current.CacheDirectory 即可获取当前平台对应的应用沙箱临时缓存目录,各平台映射的实际路径如下:

  • Windows:C:\Users\<当前用户名>\AppData\Local\Packages\<应用包标识>\LocalCache
  • iOS:应用沙箱内的 Library/Caches 目录
  • Android:应用沙箱内的 data/data/<应用包名>/cache 目录

该目录默认符合各平台沙箱规则,无需申请额外存储权限即可读写,系统会在设备存储空间不足时自动清理该目录下的文件。

2. 临时文件存储操作示例

2.1 创建随机命名临时文件

// 获取应用沙箱临时缓存目录
string cacheDir = FileSystem.Current.CacheDirectory;
// 生成随机文件名,避免重名冲突
string tempFileName = Path.GetRandomFileName();
// 拼接得到完整临时文件路径
string tempFilePath = Path.Combine(cacheDir, tempFileName);

// 写入文本内容示例
await File.WriteAllTextAsync(tempFilePath, "这是临时文件存储的测试内容");

// 读取临时文件内容示例
string content = await File.ReadAllTextAsync(tempFilePath);

2.2 创建指定文件名的临时文件

如果需要固定文件名方便后续检索,直接替换随机文件名为指定名称即可:

string cacheDir = FileSystem.Current.CacheDirectory;
// 指定固定临时文件名,例如临时截图
string tempFileName = "temp_screenshot.png";
string tempFilePath = Path.Combine(cacheDir, tempFileName);

// 写入二进制流示例,例如存储图片数据
byte[] imageBytes = 此处为你的图片二进制数据;
await File.WriteAllBytesAsync(tempFilePath, imageBytes);

3. 注意事项

  • 不要将需要长期留存的业务数据存入CacheDirectory目录,系统清理该目录内容不会提前通知应用
  • 临时文件使用完成后建议主动调用File.Delete(tempFilePath)删除,避免占用用户设备存储空间
  • 避免直接使用Path.GetTempFileName()生成临时文件路径,该方法在部分平台会指向系统全局临时目录,存在无读写权限的问题
  • 读取临时文件前建议先调用File.Exists(tempFilePath)做存在性校验,避免文件被系统清理后引发异常

内容的提问来源于stack exchange,提问作者Elie Tebchrani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 23:57:05