GetFilesはこの後半にすべてのファイルを返すわけではありませんが、その理由もわかりません。これは、少なくとも64ビット版のWindows 7 Homeを管理者として実行し、Visual Studio 2010でC#を使用して再現する方法の1つです。
\ WINDOWS \ System32に以下のファイルをインストールしますhere (http://www.ftdichip.com/Drivers/D2XX.htm)
これからFTDIドライバにEXECUTABLEインストーラをインストールします。
-ftbusui.dll
-ftcserco.dll
-ftd2xx.dll
-FTLang.dll
-ftserui2.dll
次のコード:
String[] files = Directory.GetFiles(Environment.SystemDirectory, "f*.*", SearchOption.TopDirectoryOnly);
ftd2xx.dllを返しますが、他の4つのファイルは返しません。
検索パターンを*に変更します。
GetFiles(Environment.SystemDirectory)
戻りFTD2XX.DLLはなく、他の4つのファイル:*、または単に使用します。
ファイルは隠されておらず、5人すべてが同じ所有者と権限を持っています。 5つのファイルはすべて、Windowsのエクスプローラとコマンドプロンプトウィンドウに表示されます。実際に
、次はfalseを返します:
File.Exists(@"c:\Windows\System32\ftbusui.dll")
と4つのファイルがOpenFileDialogダイアログに表示されません。管理者として実行可能ファイルを実行することで違いはなく、UACを無効にしても効果はありません。
「C:\ System Volume Inforamtion」フォルダは、SYSTEMユーザーだけに割り当てられているため、表示できません。その内部を見るためには、その所有権を取得する必要があります。ただし、これはセキュリティ上の理由から推奨されていません。 –
[C# - コピーされたファイルを除いたリストを取得する可能性があります](http://stackoverflow.com/questions/2418270/c-sharp-get-a-list-of-files-excluding-those-that -are-hidden) – TarmoPikaro