繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM