使用mono在mac上运行的c#应用程序中的文件访问问题

本文关键字:应用程序 文件 访问 问题 使用 mac 运行 mono | 更新日期: 2023-09-27 18:15:40

我开发了一个简单的。net应用程序,从web上抓取一些数据并将其保存在文件中(文件和项目exe文件在同一文件夹中)。

它在windows上运行良好,但当我在mac上使用'Mono'运行它时,我得到这个错误

访问路径'[path]'被拒绝。

我正在使用Directory.GetCurrentDirectory创建访问该文件的方法。

这里是我使用的路径:

 System.IO.Directory.GetCurrentDirectory() + "''abc.csv";

使用mono在mac上运行的c#应用程序中的文件访问问题

你不应该使用字符串连接目录,如果你希望你的应用程序是跨平台的。

:

Directory.GetCurrentDirectory() + "''abc.csv";

:

Path.Combine(Directory.GetCurrentDirectory(), "abc.csv");

使用Path.Combine将确保使用正确的目录分隔符。

如果您必须遍历多个目录,请重复使用Path.Combine:

Path.Combine(Path.Combine(Directory.GetCurrentDirectory(), "mydir"), "abc.csv");

可能你在windows上使用了错误的斜杠,你会使用像"Path'to'my'file"这样的东西,但在mac上斜杠被反转为"Path/to/my/file"