Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.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获取文件路径#_C# - Fatal编程技术网

C# 通过控制台c获取文件路径#

C# 通过控制台c获取文件路径#,c#,C#,我有一个程序,我想从控制台获取文件路径,例如程序要求我键入文件路径,但问题是我不想写下整个路径。我想使用openfiledialog或在解决方案中创建一个文本文件,并从中获取路径。以下是本节的简短代码: string input; Console.WriteLine("Type path file: "); input = Console.ReadLine(); string readText = File.ReadAllText(input); Tree HuffmanTree = new

我有一个程序,我想从控制台获取文件路径,例如程序要求我键入文件路径,但问题是我不想写下整个路径。我想使用openfiledialog或在解决方案中创建一个文本文件,并从中获取路径。以下是本节的简短代码:

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文件,我正在用c#制作控制台应用程序。错误是程序找不到路径名,例如Text.txt,但如果我使用整个路径而不是“输入”,程序会工作。

您需要确保.txt文件与正在运行的.exe位于同一目录中

您可以使用以下方法使VisualStudio将其复制到调试位置:

在解决方案资源管理器中单击文件并设置“复制到输出目录”选项


确保路径和内容在字符串前面有@,如@“c:\”以转义任何字符。还要知道,如果文本文件位于EXE旁边,则不需要提供完整路径,只需提供文件名,在本例中,它将是“test.txt”

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