[英]ReadAllText method appends file path to the application path
我正在使用ReadAllText方法将文件内容读取为字符串,但是我一直未找到异常文件。 发生这种情况是因为出于某种原因,ReadAllText将文件路径追加到应用程序路径并尝试查找它:
附加信息:找不到路径'c:\\ Projects \\ MyApp1 \\ MyApp1 \\ bin \\ Debug \\ C \\ Test \\ MyFile.csv'的一部分。
string FileName ="C:\Test\MyFile.csv";
string allText = File.ReadAllText(fileName, encoding);
如何解决此问题?
您已经在文件名中错过了:
,因此它看起来像File.ReadAllText
方法的相对路径,因此将其附加到可执行文件所在的路径。 另外, \\
符号也应在字符串中转义。
只需将其更改为
string FileName =@"C:\Test\MyFile.csv";
您的FileName
已关闭。 首先,您在驱动器名称和正斜杠之间缺少冒号; 应该是C:\\
。 其次,您应该正确转义\\
字符,如下所示: C:\\\\Test\\\\...
(或使用逐字字符串 @"C:\\Test\\..."
)
您有一个错字: C\\
应该是C:\\
。 另外,您还需要逃脱斜线:
"C:\\Test\\MyFile.csv"
或将整个字符串设为文字:
@"C:\Test\MyFile.csv"
更改代码如下-
string FileName = @"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);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.