我想从目录中获取文件,并且在配置文件中有目录的路径。如果我得到这样的文件名:
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]?
感谢。
答案 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();