Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从本地文件夹读取文本文件_C#_File_File Io - Fatal编程技术网

C# 从本地文件夹读取文本文件

C# 从本地文件夹读取文本文件,c#,file,file-io,C#,File,File Io,我想从本地目录中读取一个文本文件,我将该文本文件添加到我的c#解决方案中,以便在部署时将其复制。。但是我怎么打开它呢?我一直在搜索,但所有示例都假设我有一个C:\textfile.txt: 我试着只看文件 if (File.Exists("testfile.txt")) { return true; } 那没用。然后我试着: if (File.Exists(@"\\TextConsole\testfile.txt")) { return true; } 但是仍然不会打开它。。有什

我想从本地目录中读取一个文本文件,我将该文本文件添加到我的c#解决方案中,以便在部署时将其复制。。但是我怎么打开它呢?我一直在搜索,但所有示例都假设我有一个C:\textfile.txt:

我试着只看文件

if (File.Exists("testfile.txt"))
{
   return true;
}
那没用。然后我试着:

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

但是仍然不会打开它。。有什么想法吗???

检查后,您需要使用以下方法之一

 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);
 }

您将其添加到解决方案中并不意味着该文件将被放置到输出构建目录中。如果要使用相对路径,请确保在生成期间将文本文件复制到输出目录。要执行此操作,请在解决方案资源管理器中转到文本文件的属性,并将
Copy To Output Directory
设置为
Always
Copy if newer

然后你可以用

File.Open("textfile.txt");

如果文件确实位于
c:\textfile.txt
中,您可以找到如下文件:

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

但是您应该使用
Path.Combine
来构建嵌套文件路径并处理驱动器详细信息。

此示例使用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();
在当前文件夹中使用简单的
PathCombine
引用As对我有效:

string txtPath = Path.Combine(Environment.CurrentDirectory, "testfile.txt")

TestFile.txt位于解决方案的目录中。它不会复制到生成目录。您必须知道它的文件路径。它找不到该文件,因为它不存在于他的构建目录中。在我看来,正确的方法应该是
string txtPath=Path.Combine(Environment.CurrentDirectory,“testfile.txt”)。确保在项目属性窗格中将“复制到输出目录”设置为true。这将把文件复制到bin目录,在那里进行读取访问。