Я хочу считать текстовый файл из своего локального каталога, я добавил текстовый файл к своему c# решению, таким образом, это скопировать при развертывании.. но как я открываю его? Я искал, но все примеры предполагают, что у меня есть C:\textfile.txt:
Я пытался просто читать файл
if (File.Exists("testfile.txt"))
{
return true;
}
Это не работало. Тогда я попробовал:
if (File.Exists(@"\\TextConsole\testfile.txt"))
{
return true;
}
но все еще привычка открывает его.. какие-либо идеи??
То, что вы добавили его в ваше решение, не означает, что файл будет помещен в ваш выходной каталог Build. Если вы хотите использовать относительный путь, убедитесь, что ваш TextFile будет скопирован во время сборки в выходной каталог. Для этого в проводнике решения перейдите в свойства текстового файла и установите Copy to Output Directory
в Always
или Copy if newer
Затем вы можете использовать
File.Open("textfile.txt");
Может быть проще использовать что-то вроде com0com (если вы находитесь в Windows) для настройки виртуального последовательного порта и разработки на этом.
-121--1229576-Пара второстепенных точек, которые вряд ли будут причиной, почему вы видели это в этом случае.
Насколько «в случае, если другие конструкторы будут добавлены позже, и вы забудете, что у вас нет по умолчанию» - это может быть причиной, я полагаю. Но если бы был добавлен конструктор не по умолчанию, любой код, который использовал конструктор по умолчанию, не мог бы быть скомпилирован, поэтому парень, добавляющий новый конструктор, как правило, также должен был бы добавить определение для ctor по умолчанию.
Опять же, я не могу думать о каком-то особом вреде в определении пустого ктора (хотя теперь, когда я это ввел, у меня возникает ощущение, что кто-то может указать на какой-то угол C++, где это может укусить вас).
-121--2633447- Если файл действительно находится в c :\textfile.txt
, его можно найти следующим образом:
if (File.Exists(@"c:\testfile.txt"))
{
return true;
}
Но для создания вложенного пути к файлу следует использовать Path.Combine
, а для работы с деталями диска - StartInfo
.
вам нужно использовать один из следующих после проверки, которую вы сделали
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);
}