从本地文件夹中读取文本文件

时间:2010-02-18 20:09:40

标签: c# file file-io

我想从我的本地目录中读取一个文本文件,我将文本文件添加到我的c#解决方案中,因此它会在部署时被复制..但是我如何打开它?我一直在搜索,但所有的例子都假设我有一个C:\ textfile.txt:

我尝试过阅读文件

if (File.Exists("testfile.txt"))
{
   return true;
}

那不起作用。然后我试了一下:

if (File.Exists(@"\\TextConsole\testfile.txt"))
{
   return true;
}

但仍然不会打开它...任何想法??

5 个答案:

答案 0 :(得分:27)

仅仅因为您将其添加到解决方案并不意味着文件会被放入您的输出Build目录中。如果要使用相对路径,请确保在构建期间将TextFile复制到输出目录。为此,请在解决方案资源管理器中转到文本文件的属性,并将Copy to Output Directory设置为AlwaysCopy 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")