0

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

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

所以一切都很完美。但是,如果我尝试像这样获取文件名:

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

我得到一个空列表。我认为问题在于字符串路径之前的 @ 语法。但是我怎样才能将路径前的@ 放入字符串路径 [0] 中?

谢谢。

4

2 回答 2

1

阅读有关逐字字符串的更多信息。这些用前导 @ 符号表示,后跟双引号内的字符串,其中字符串不需要特殊字符的转义序列。例如@"c:\Docs\Source""c:\\Docs\\Source"

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

于 2012-07-22T14:12:29.743 回答
0

您可以在现有反斜杠之前添加一个反斜杠:

var filePaths = Directory.GetFiles(path[0].Replace("\\", "\\\\"), "*.*", SearchOption.AllDirectories).ToList();
于 2012-07-22T13:45:03.260 回答