2016-05-22 4 views
-1

У меня есть программа, где я хочу получить путь к файлу с консоли, например, программа просит меня ввести путь к файлу, но вот проблема, я не хочу писать весь путь вниз. Я хотел бы использовать openfiledialog или создать текстовый файл внутри решения и получить путь оттуда. Вот короткий код из раздела:Получение пути к файлу через консоль C#

string input; 
Console.WriteLine("Type path file: "); 
input = Console.ReadLine(); 

string readText = File.ReadAllText(input); 

Tree HuffmanTree = new Tree(); 

// Build the Huffman tree 
HuffmanTree.Build(readText); 

И я уже создал файл text.txt в Aplication, и я делаю консольные приложения под C#. Ошибка заключается в том, что программа не может найти имя пути, например. Text.txt, но если я использую весь путь вместо «ввода», программа работает.

ответ

0

Вы должны убедиться, что ваш .txt файл находится в том же каталоге, что и .exe вы работаете

Вы можете сделать VisualStudio, чтобы скопировать его в место отладки с:

Нажмите на файл в вашем обозревателе решений и в «Копировать в выходной каталог» вариант

Solution Explorer

+0

была точная проблемой, спасибо! – anthraxa

0

Убедитесь, что ваши пути и вещи есть @ перед строкой, как @ «C: \», чтобы избежать каких-либо литералы символов. Также известно, что если текстовый файл находится рядом с EXE вам не нужно указывать полный путь, вы только предоставить имя файла, в данном случае это было бы «test.txt»

using System.IO; 
using System.Linq; 
using System.Text.RegularExpressions;  

public static string getPathFromUser(string path) 
    { 
     if (File.Exists("test.txt")) 
     { 
      string k = Regex.Replace(File.ReadAllLines("test.txt").Single(d => d.ToLower().Contains(path.ToLower())), @"\w+:", "\0"); 
      return k != null || k != string.Empty ? k : "Unknown option."; 
     } 
     else 
     { 
      File.AppendAllText("test.txt", "home:"); 
      return "No file found, made one instead"; 
     } 
    } 

текстовый будет выглядеть что-то вроде этого:

enter image description here