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

如何在.NET MAUI应用的AppDataDirectory下创建文件夹?

.NET MAUI 本地独立用户文件夹实现方案

.NET MAUI 未直接提供UWP中ApplicationData.Current.LocalFolder.CreateFolderAsync()的同名API,但可以通过框架内置的文件系统接口实现完全等效的功能,满足多用户独立目录分类存储的需求,具体实现如下:

  • 首先获取应用本地存储根路径:直接调用FileSystem.Current.AppDataDirectory即可,这个属性会自动适配各平台的应用专属可读写目录,语义和UWP的LocalFolder完全一致,属于应用私有存储,不需要额外申请文件系统权限,应用卸载时目录下的内容会被同步清理。
  • 文件夹创建直接使用System.IO内置的API即可,行为和UWP的异步创建方法对齐,参考实现代码:
using System.IO;

/// <summary>
/// 为指定用户创建独立的存储文件夹
/// </summary>
/// <param name="userName">用户名标识,比如user1、user2</param>
/// <returns>用户专属目录信息</returns>
public async Task<DirectoryInfo> GetOrCreateUserFolderAsync(string userName)
{
    // 拼接用户目录完整路径
    string targetPath = Path.Combine(FileSystem.Current.AppDataDirectory, userName);
    // 目录已存在时直接返回现有目录,不存在则自动创建,不会抛出重复创建异常
    DirectoryInfo folder = Directory.CreateDirectory(targetPath);
    return await Task.FromResult(folder);
}

提示:如果需要完全对齐UWP中CreateFolderAsync的冲突处理逻辑,可以在创建前先通过Directory.Exists(targetPath)判断目录状态,按需选择覆盖原有内容、跳过创建或者抛出异常的逻辑。

该方案会自动适配所有MAUI支持的平台,不需要针对单个平台做单独路径适配:

  • Windows端路径对应当前用户下的AppData/Local/[应用包名]/LocalState,和原UWP的LocalFolder路径完全一致
  • Android端对应应用私有目录下的files文件夹
  • iOS/macOS端对应应用沙盒内的Library目录

后续针对不同用户的文件读写操作,只需要把文件路径和对应用户的文件夹路径拼接即可,天然实现不同用户数据的隔离存储。

内容的提问来源于stack exchange,提问作者Peter DC

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 23:15:11