ReadAllText方法将文件路径附加到应用程序路径

时间:2015-12-10 14:01:58

标签: c#

我正在使用ReadAllText方法将文件内容读入字符串,但我一直收到一个未找到的异常文件。之所以发生这种情况,是因为出于某种原因,ReadAllText会将文件路径附加到应用程序路径并尝试查找它:

  

其他信息:找不到路径的一部分&c; \ Projects \ MyApp1 \ MyApp1 \ bin \ Debug \ C \ Test \ MyFile.csv'。

string FileName ="C:\Test\MyFile.csv";
string allText = File.ReadAllText(fileName, encoding);

如何解决此问题?

5 个答案:

答案 0 :(得分:1)

您在文件名中错过了:,因此它看起来像File.ReadAllText方法的相对路径,因此它将此附加到可执行文件所在的路径。此外,\符号也应在字符串中进行转义。

只需将其更改为

即可
string FileName =@"C:\Test\MyFile.csv";

答案 1 :(得分:1)

您的FileName已关闭。首先,你错过了驱动器名称和正斜杠之间的冒号;它应该是C:\。其次,您应该正确转义\字符,如下所示:C:\\Test\\...(或使用verbatim strings@"C:\Test\..."

答案 2 :(得分:1)

您有一个拼写错误:C\应为C:\。你还需要逃避斜线:

"C:\\Test\\MyFile.csv"

或使整个字符串成为文字:

@"C:\Test\MyFile.csv"

答案 3 :(得分:0)

更改代码如下 -

string FileName = @"C:\Test\MyFile.csv";

答案 4 :(得分:0)

在C#中,当你将它包含在用引号括起来的字符串中时,你需要转义\字符。需要转义,因为\字符被视为在文本字符串中显示特殊字符的方式。将代码更改为以下内容:

string FileName ="C\\Test\\MyFile.csv";
string allText = File.ReadAllText(fileName, encoding);

您还可以使用特殊的@运算符来指定逐字字符串文字。这看起来如下:

string FileName =@"C\Test\MyFile.csv";
string allText = File.ReadAllText(fileName, encoding);

最后,您错过了路径中的:字符。代码实际上应如下所示:

string FileName = @"C:\Test\MyFile.csv";
string allText = File.ReadAllText(fileName, encoding);