0

ディレクトリからファイルを取得したいのですが、構成ファイルにディレクトリのパスがあります。このようなファイル名を取得した場合:

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

したがって、すべてが完璧に機能します。しかし、次のようなファイル名を取得しようとすると、次のようになります。

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

空のリストが表示されます。問題は、文字列パスの前の@の構文にあると思います。しかし、文字列path [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 に答える