8

因此,我正在尝试创建一个需要读取名为“scripts”的子文件夹中的脚本的应用程序。我的代码有问题:

string script = Console.ReadLine();
string path = Directory.GetCurrentDirectory();
string sciptpath  = path + "/scripts/" + script;

这在 Windows 上运行良好。但在 Linux(使用 Mono Runtime 运行)上,它会转到当前用户的主目录……而不是可执行文件的目录。这是一个错误吗?有人可以提出解决方法吗?

4

1 回答 1

11

并不是说它需要“修复”,而是当前目录不是您认为的那样。当前目录是相对路径“具有焦点”的目录。无论您的 EXE 在哪里,您的当前目录都可以在其他任何地方,甚至可能在执行期间发生变化。

你想要的是:

string path = Path.GetDirectoryName(Application.ExecutablePath);
于 2012-10-16T13:54:25.423 回答