Считайте текстовый файл из локальной папки

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

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

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

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

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

но все еще привычка открывает его.. какие-либо идеи??

10
задан casperOne 18 February 2010 в 20:12
поделиться

3 ответа

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

Затем вы можете использовать

File.Open("textfile.txt");
27
ответ дан 3 December 2019 в 14:18
поделиться

Может быть проще использовать что-то вроде com0com (если вы находитесь в Windows) для настройки виртуального последовательного порта и разработки на этом.

-121--1229576-

Пара второстепенных точек, которые вряд ли будут причиной, почему вы видели это в этом случае.

  • Это дает возможность установить точку останова.
  • Вы можете сделать его непубличным

Насколько «в случае, если другие конструкторы будут добавлены позже, и вы забудете, что у вас нет по умолчанию» - это может быть причиной, я полагаю. Но если бы был добавлен конструктор не по умолчанию, любой код, который использовал конструктор по умолчанию, не мог бы быть скомпилирован, поэтому парень, добавляющий новый конструктор, как правило, также должен был бы добавить определение для ctor по умолчанию.

Опять же, я не могу думать о каком-то особом вреде в определении пустого ктора (хотя теперь, когда я это ввел, у меня возникает ощущение, что кто-то может указать на какой-то угол C++, где это может укусить вас).

-121--2633447-

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

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

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

0
ответ дан 3 December 2019 в 14:18
поделиться

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

 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);
 }
6
ответ дан 3 December 2019 в 14:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: