如何读取文件夹中名称中包含方括号的文件路径

时间:2016-09-05 07:44:10

标签: c# filepath brackets square

我有一个文件路径如下:

C:\Recordings\Public\20160901\[MYPC]

我无法更改文件夹的格式

我正在尝试使用以下代码读取文件夹的内容:

foreach (string file in Directory.EnumerateFiles(args[0], "*.*"))
{
    string contents = File.ReadAllText(file);
    Console.WriteLine(contents);
}

我收到以下错误:

Unhandled Exception: System.NotSupportedException: The given path's format is not supported.

我知道this post因为我之前使用过这个方法并且有很好的结果,但它似乎不适用于c#。我通过CMD line args [0](控制台应用程序)设置读取路径

任何想法/指示都是最受欢迎的。

更新

我用以下内容调用了我的应用程序,这给了我一个错误:

myapp.exe "c:\My Recordings\Public\20160905\[CDPC]\"

以下没有:

myapp.exe "c:\My Recordings\Public\20160905\[CDPC]"

1 个答案:

答案 0 :(得分:1)

只需删除包装引号(如果它们存在)

foreach (string file in Directory.EnumerateFiles(args[0].Replace("\"",""), "*.*"))
            {
                string contents = File.ReadAllText(file);
                Console.WriteLine(contents);
            }

也可以(更准确地说)使用正则表达式

Regex.Replace(args[0], "(^\")|(\"$)", "") //instead of args[0].Replace("\"","")