4

(Windows 7 64 ビットおよび C# を使用)

これらの保護されたファイルを検索から除外する方法はありますか?

これは、「システムファイル」を含むフォルダー内のすべてのファイルを表示しています

string[] files = Directory.GetFiles(directory);

ここに画像の説明を入力 ここに画像の説明を入力

4

4 に答える 4

12
var list = new DirectoryInfo(@"C:\").GetFiles()
                .Where(f => !f.Attributes.HasFlag(FileAttributes.System))
                .Select(f => f.FullName)
                .ToList();
于 2013-04-17T13:48:29.947 に答える
2

FileInfoを使用できます。

var fileInfo = new FileInfo(path);
if((fileInfo.Attributes & FileAttributes.System) != FileAttributes.System))
{
    // path is not a system file
}
于 2013-04-17T13:48:04.087 に答える
0

Directory.GetFiles は、ファイル システムで動作する他のすべての .Net フレームワーク メソッドと同様に、エクスプローラー設定を使用しません。パスで FileInfo を取得し、属性をチェックして隠しファイルを自分で除外できます。

于 2013-04-17T13:45:33.370 に答える
0

各ファイルについて、以下に示すようにファイル属性を確認する必要があります

FileAttributes att = File.GetAttributes(@"c:\samplefile.dll");

そして、次のテストを使用します

if ((att & FileAttributes.System) == FileAttributes.System)
{
    // the file is system
}
于 2013-04-17T13:52:33.310 に答える