2

ふるいにかけるディレクトリ構造があり、最上位のフォルダを指定できるようにする必要があります。典型的な例は次のとおりです。

c:\folder1\1\targetfolder
c:\folder1\2\targetfolder
c:\folder1\3\targetfolder
c:\folder1\4\targetfolder

targetfolderというフォルダー内の各ファイルを取得したいのですが、これを指定すると失敗するようです。

Directory.GetFiles("c:\folder1\*\targetfolder");

これを達成するための迅速で簡単な方法はありますか?

4

2 に答える 2

0

これを試して動作しますが、ルートパス内に同じパターンのファイルまたはフォルダーがある場合、誤検知が発生する可能性があります

var files = Directory.GetFiles("c:\\folder1", "*.*", 
        SearchOption.AllDirectories).Where(n => n.Contains("\\targetfolder\\"));
于 2012-10-08T10:23:37.347 に答える
0

targetfolderこれは私にとってはうまくいき、名前の付いたファイルや類似のファイルがある場合、副作用はありません。

Directory.GetDirectories(
    @"c:\folder1\",
    @"targetfolder",
    SearchOption.AllDirectories)
    .SelectMany(dir => Directory.GetFiles(dir, "*", SearchOption.TopDirectoryOnly))

targetfolderこれにより、フォルダー内で名前が付けられたフォドラー内にのみ存在するファイルが取得されますc:\folder1\

于 2012-10-08T10:43:29.783 に答える