You need to enable JavaScript to run this app. Mono环境下MAC系统访问文件夹提示Access denied问题求助
优惠活动
大模型
产品
解决方案
定价
更多

Mono环境下MAC系统访问文件夹提示Access denied问题求助

Mono Mac环境目录写入访问拒绝问题解决方案

根因定位

你遇到的报错由两类问题共同导致:

  1. 代码逻辑错误:FileStream构造函数要求传入具体文件的完整路径,你当前传入的是文件夹路径,系统自然无法对目录执行文件级别的写入操作,这也匹配你单独创建单个文件可正常写入的现象。
  2. Mac系统专属权限限制:MacOS 10.15+ 对~/Documents等用户核心目录增加了沙箱访问限制,即使当前用户对目录有读写权限,启动Mono程序的终端/IDE如果没有授予对应的磁盘访问权限,也会触发目录内写入失败。

修复步骤

  • 首先修正代码逻辑,拼接具体文件路径后再创建FileStream,参考修正代码:
// 仅保存文件夹路径
var dirPath = "/Users/pat/Documents/Work/TestConsole/PdftronTestConsole/NewDirectory1/";
// 拼接实际要写入的文件名,替换为你解压后的实际文件名即可
var targetFilePath = Path.Combine(dirPath, resFileName); 
Assembly asm = Assembly.GetExecutingAssembly(); //读取嵌入式资源
inStream = new BufferedStream(asm.GetManifestResourceStream(resFileName));
Directory.CreateDirectory(dirPath);
// 传入具体文件路径而非文件夹路径
outStream = new FileStream(targetFilePath, FileMode.Create, FileAccess.Write);
  • 若修正代码后仍有权限报错,按以下步骤配置系统权限:
    1. 打开苹果菜单→系统设置→隐私与安全性→下拉找到完全磁盘访问权限
    2. 在权限列表中找到你运行程序的工具(比如终端、VSCode、Rider等),勾选右侧的权限开关
    3. 重启对应工具后重新运行程序即可正常写入
  • 若你是将程序打包为.app独立包运行时出错,可在包内的Info.plist中新增com.apple.security.files.user-selected.read-write权限配置,重新签名后即可正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 18:57:00