我想从我的本地目录中读取一个文本文件,我将文本文件添加到我的c#解决方案中,因此它会在部署时被复制..但是我如何打开它?我一直在搜索,但所有的例子都假设我有一个C:\ textfile.txt:
我尝试过阅读文件
if (File.Exists("testfile.txt"))
{
return true;
}
那不起作用。然后我试了一下:
if (File.Exists(@"\\TextConsole\testfile.txt"))
{
return true;
}
但仍然不会打开它...任何想法??
答案 0 :(得分:27)
仅仅因为您将其添加到解决方案并不意味着文件会被放入您的输出Build目录中。如果要使用相对路径,请确保在构建期间将TextFile复制到输出目录。为此,请在解决方案资源管理器中转到文本文件的属性,并将Copy to Output Directory
设置为Always
或Copy if newer
然后你可以使用
File.Open("textfile.txt");
答案 1 :(得分:6)
您需要在检查完成后使用以下其中一项
string path = @"\\TextConsole\testfile.txt";
if (File.Exists(path))
{
FileStream fileStream = File.OpenRead(path); // or
TextReader textReader = File.OpenText(path); // or
StreamReader sreamReader = new StreamReader(path);
}
答案 2 :(得分:2)
此示例使用StreamReader类的ReadLine方法将文本文件的内容(一次一行)读入字符串。每个文本行都存储在字符串行中并显示在屏幕上。
int counter = 0;
string line;
// Read the file and display it line by line.
System.IO.StreamReader file = new System.IO.StreamReader("c:\\test.txt");
while((line = file.ReadLine()) != null)
{
Console.WriteLine (line);
counter++;
}
file.Close();
// Suspend the screen.
Console.ReadLine();
参考http://msdn.microsoft.com/en-us/library/aa287535%28v=vs.71%29.aspx
答案 3 :(得分:0)
如果文件确实在c:\textfile.txt
,您可以这样找到:
if (File.Exists(@"c:\testfile.txt"))
{
return true;
}
但您应该使用Path.Combine
构建嵌套文件路径,并使用DriveInfo
来处理驱动器详细信息。
答案 4 :(得分:0)
与Bobby mentioned in a comment一样,在当前文件夹中使用简单的PathCombine
对我有用:
string txtPath = Path.Combine(Environment.CurrentDirectory, "testfile.txt")