C# 找不到与程序位于同一目录中的文件

0 c# streamreader

当尝试打开与 位于同一目录中的文件上的 StreamReader 时,我收到 System.IO.FileNotFoundException Program.cs

try
{
    using (StreamReader sr = new StreamReader("file.txt")) { ... }
}
Run Code Online (Sandbox Code Playgroud)

有问题的单词文件与程序源代码位于同一目录中。我正在使用 Visual Studio 2019,这是一个简单的命令行项目。

那么为什么 C# 找不到这个文件,尽管它位于同一目录中呢?

Visual Studio 不会显示整个堆栈跟踪,而只会显示一行错误,这并没有帮助。

Hei*_*nzi 5

那么为什么 C# 找不到这个文件,尽管它位于同一目录中呢?

因为你的代码不在所在目录执行Program.cs它在构建过程放置其二进制文件的目录中执行,该目录通常是一个目录bin\Debugbin\Release子目录。

如果您使用 Visual Studio,则可以使用Copy to output directory文件的属性来确保在生成过程中它也被复制到此目录。