通过动态路径从目录中获取文件

时间:2012-07-22 13:42:43

标签: c# .net

我想从目录中获取文件,并且在配置文件中有目录的路径。如果我得到这样的文件名:

var filePaths = Directory.GetFiles(@"SomePath", "*.*",
  SearchOption.AllDirectories).ToList();

所有工作都很完美。但是,如果我尝试像这样获取fileNames:

var path = ConfigurationManager.AppSettings.GetValues("Key");
var filePaths = Directory.GetFiles(path[0], "*.*",
  SearchOption.AllDirectories).ToList();

我得到一个空列表。我认为问题出在字符串路径之前的@的语法中。但是如何将路径前的@赋予字符串路径[0]?

感谢。

2 个答案:

答案 0 :(得分:1)

详细了解verbatim strings。这些用前导@符号表示,后跟双引号内的字符串,其中字符串不需要特殊字符的转义序列。例如,@"c:\Docs\Source""c:\\Docs\\Source"

相同

在您的情况下,请确保path[0]格式为"c:\\Docs\\Source"

答案 1 :(得分:0)

您可以在现有版本之前添加反斜杠:

var filePaths = Directory.GetFiles(path[0].Replace("\\", "\\\\"), "*.*", SearchOption.AllDirectories).ToList();