(Windows 7 64 ビットおよび C# を使用)
これらの保護されたファイルを検索から除外する方法はありますか?
これは、「システムファイル」を含むフォルダー内のすべてのファイルを表示しています
string[] files = Directory.GetFiles(directory);
var list = new DirectoryInfo(@"C:\").GetFiles()
.Where(f => !f.Attributes.HasFlag(FileAttributes.System))
.Select(f => f.FullName)
.ToList();
FileInfoを使用できます。
var fileInfo = new FileInfo(path);
if((fileInfo.Attributes & FileAttributes.System) != FileAttributes.System))
{
// path is not a system file
}
Directory.GetFiles は、ファイル システムで動作する他のすべての .Net フレームワーク メソッドと同様に、エクスプローラー設定を使用しません。パスで FileInfo を取得し、属性をチェックして隠しファイルを自分で除外できます。
各ファイルについて、以下に示すようにファイル属性を確認する必要があります
FileAttributes att = File.GetAttributes(@"c:\samplefile.dll");
そして、次のテストを使用します
if ((att & FileAttributes.System) == FileAttributes.System)
{
// the file is system
}