如何在PC的C#自动化测试中添加凭据访问远程Mac文件?
解决Windows C#代码访问Mac共享Downloads文件夹的权限问题
前置准备:先配置Mac的文件共享
Mac默认未开启文件共享,必须先完成以下设置:
- 打开Mac的「系统设置」→「通用」→「共享」
- 勾选「文件共享」,点击右侧「信息」按钮
- 在「共享文件夹」列表中添加你的
Downloads文件夹,给指定用户设置读写权限 - 记好这个Mac用户的账号和密码,后续配置要用到
方法1:手动添加Windows凭据(适合测试/固定环境)
如果是长期稳定的测试环境,直接在Windows系统里配置凭据即可:
- 按下
Win+R,输入control keymgr.dll打开「凭据管理器」 - 选择「添加Windows凭据」
- 填写以下信息:
- 互联网或网络地址:
192.168.0.12(你的Mac局域网IP) - 用户名:Mac的登录账号
- 密码:Mac的登录密码
- 互联网或网络地址:
- 保存后,直接用
\\192.168.0.12\Downloads路径访问即可,无需修改代码
方法2:C#代码动态添加凭据(适合自动化测试场景)
如果需要在测试代码中自动处理权限,用.NET的CredentialCache类实现:
using System.Net; using System.IO; // 配置Mac共享路径和验证信息 string macDownloadsPath = @"\\192.168.0.12\Downloads"; var macCredentials = new NetworkCredential("你的Mac用户名", "你的Mac密码"); // 创建凭据缓存并绑定到共享路径 var credentialCache = new CredentialCache(); credentialCache.Add( new Uri(macDownloadsPath), "NTLM", // Mac SMB共享默认用NTLM验证 macCredentials ); // 现在可以正常读取共享文件夹中的文件 string[] downloadedFiles = Directory.GetFiles(macDownloadsPath);
注意事项
- 路径格式必须用Windows标准的
\\双反斜杠,不要用// - 确保Windows和Mac在同一局域网,双方防火墙未拦截SMB协议端口(默认445)
- 如果Mac开启了「文件保险箱」,需要确认共享文件夹的权限未被加密限制
- 测试前可以先在Windows资源管理器输入
\\192.168.0.12\Downloads,确认能正常访问后再运行代码
内容的提问来源于stack exchange,提问作者Kev
相关产品推荐
相关产品推荐

