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

MacOS/Linux下C#使用~开头路径未被识别为绝对路径的原因及修复方法

问题原因

~ 作为用户主目录的缩写是MacOS、Linux等类Unix系统的shell内置解析能力,.NET 标准IO API 本身不支持自动解析路径中的 ~ 符号,会直接将其识别为普通的目录名称,和当前程序的工作目录拼接后作为最终的访问路径,因此出现了报错中的路径拼接错误问题。

修复方案

你需要手动解析 ~ 对应的用户主目录路径后再拼接后续路径,推荐使用.NET 内置的跨平台API实现,无需手动处理不同系统的路径分隔符差异:

  • 调用 Environment.GetFolderPath(Environment.SpecialFolder.UserProfile) 获取当前用户主目录的绝对路径
  • 使用 Path.Combine() 方法拼接主目录路径和目标文件的相对路径

正确的代码示例如下:

// 读取当前用户主目录的绝对路径
string userHomePath = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile);
// 拼接得到目标文件的完整绝对路径
string targetFilePath = Path.Combine(userHomePath, "Desktop/data.bin");
byte[] bytes = await File.ReadAllBytesAsync(targetFilePath);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 00:36:01