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

本文关键字:路径 应用程序 ReadAllText 文件 方法 | 更新日期: 2023-09-27 18:26:18

我正在使用ReadAllText方法将文件内容读取到字符串中,但我一直得到一个找不到的异常文件。发生这种情况的原因是,出于某种原因,ReadAllText将文件路径附加到应用程序路径并试图找到它:

附加信息:找不到路径"c:''Projects''MyApp1''MyApp1''bin''Debug''c''Test''MyFile.csv"的一部分。

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

如何解决此问题?

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

文件名中缺少:,因此它看起来像是File.ReadAllText方法的相对路径,因此它将其附加到可执行文件所在的路径中。此外,应在字符串中转义'符号。

只需将其更改为

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

您的FileName已关闭。首先,驱动器名称和正斜杠之间缺少一个冒号;它应该是CCD_ 5。其次,应该正确地转义'字符,如下所示:C:''Test''...(或者,使用逐字逐句的字符串,@"C:'Test'..."

您有一个拼写错误:C'应该是C:'。此外,你需要逃离你的斜杠:

"C:''Test''MyFile.csv"

或者将整个字符串设为文字:

@"C:'Test'MyFile.csv"

在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);

更改代码如下-

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