Читать текстовый файл из локальной папки - PullRequest
10 голосов
/ 18 февраля 2010

Я хочу прочитать текстовый файл из моего локального каталога, я добавил текстовый файл в свое решение c #, чтобы оно копировалось при развертывании ... но как мне его открыть?Я искал, но все примеры предполагают, что у меня есть C: \ textfile.txt:

Я пытался просто прочитать файл

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

Это не сработало.Тогда я попробовал:

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

но все равно не открою его .. какие-нибудь идеи ??

Ответы [ 5 ]

27 голосов
/ 18 февраля 2010

То, что вы добавили его в свое решение, не означает, что файл помещается в выходной каталог Build. Если вы хотите использовать относительный путь, убедитесь, что ваш TextFile скопирован во время сборки в выходной каталог. Для этого в обозревателе решений перейдите в свойства текстового файла и установите Copy to Output Directory на Always или Copy if newer

Тогда вы можете использовать

File.Open("textfile.txt");
6 голосов
/ 18 февраля 2010

вам нужно использовать одно из следующих после проверки, которую вы сделали

 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 голосов
/ 24 сентября 2014

В этом примере содержимое текстового файла по одной строке за раз считывается в строку с использованием метода ReadLine класса StreamReader. Каждая строка текста сохраняется в строке и отображается на экране.

  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

0 голосов
/ 26 апреля 2019

Как Бобби, упомянутый в комментарии , использование простого PathCombine в текущей папке сработало для меня:

string txtPath = Path.Combine(Environment.CurrentDirectory, "testfile.txt")
0 голосов
/ 18 февраля 2010

Если файл действительно находится в c:\textfile.txt, вы можете найти его следующим образом:

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

Но вы должны использовать Path.Combine для построения вложенного пути к файлу и DriveInfo для работы с данными привода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...