我正在使用ReadAllText方法将文件内容读入字符串,但我一直收到一个未找到的异常文件。之所以发生这种情况,是因为出于某种原因,ReadAllText会将文件路径附加到应用程序路径并尝试查找它:
其他信息:找不到路径的一部分&c; \ Projects \ MyApp1 \ MyApp1 \ bin \ Debug \ C \ Test \ MyFile.csv'。
string FileName ="C:\Test\MyFile.csv";
string allText = File.ReadAllText(fileName, encoding);
如何解决此问题?
答案 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);