DOBON.NETお気楽掲示板

[ 最新記事及び返信フォームをトピックトップへ ]

■1528 / inTopicNo.1)  GetFilesとエクスプローラーの一覧の違い
  
□投稿者/ たた -(2013/08/30(Fri) 20:31:55)
  • アイコンTipsを参考にフォルダのファイルの一覧を取得しようとしています。
    処理は成功するのですが、エクスプローラーで見るファイルの一覧と明らかに異なります。
    理由も気になりますが、エクスプローラーと同じファイルの一覧を取得する方法を教えてください。

    【ソース】
    String[] buf_files = new String[0];
    buf_files = System.IO.Directory.GetFiles("c:\\windows\\system32", "*");

    【エクスプローラーでのファイル一覧】
    C:\Windows\System32\aaclient.dll
    C:\Windows\System32\accessibilitycpl.dll
    C:\Windows\System32\ACCTRES.dll
    C:\Windows\System32\acledit.dll
    C:\Windows\System32\aclui.dll
    C:\Windows\System32\acppage.dll
    C:\Windows\System32\acproxy.dll
    C:\Windows\System32\ActionCenter.dll
    C:\Windows\System32\ActionCenterCPL.dll
    ...略

    【GetFilesでのファイルの一覧】
    C:\Windows\System32\%TMP%
    C:\Windows\System32\12520437.cpx
    C:\Windows\System32\12520850.cpx
    C:\Windows\System32\@OpenWithToastLogo.png
    C:\Windows\System32\aaclient.dll
    C:\Windows\System32\accessibilitycpl.dll
    C:\Windows\System32\ACCTRES.dll
    C:\Windows\System32\acledit.dll
    C:\Windows\System32\aclui.dll
    C:\Windows\System32\acppage.dll
    C:\Windows\System32\ActionCenter.dll
    C:\Windows\System32\ActionCenterCPL.dll
    ...略

    【異なる点】
    ・%TMP%、12520437.cpxなどエクスプローラーには無いファイルがある。
    ・acproxy.dllなど取得できないファイルがある。


引用返信 削除キー/
■1533 / inTopicNo.2)  Re[1]: GetFilesとエクスプローラーの一覧の違い
□投稿者/ 魔界の仮面弁士 -(2013/11/14(Thu) 21:59:55)
  • アイコンNo1528に返信(たたさんの記事)
    > 理由も気になりますが、
    普通は %TMP% という名前のフォルダやファイルは無いと思います。
    環境変数 TMP の展開ミスで生成されてしまったのかな…?

    > ・%TMP%、12520437.cpxなどエクスプローラーには無いファイルがある。
    標準の設定では、隠し属性を持つファイルはエクスプローラーに表示されません。

    また、Directory.GetFiles が参照するのは物理ディレクトリですが、
    エクスプローラーが表示するのは仮想フォルダーの場合があります。
    (たとえばデスクトップフォルダーは、個人別のデスクトップディレクトリと
     全ユーザー共有のデスクトップディレクトリーの両方が表示されています)

    > エクスプローラーと同じファイルの一覧を取得する方法を教えてください。
    完全に一致させたいのであれば、COM の Shell オブジェクトを参照して
    FolderItem オブジェクトを列挙させるのが確実かと思います。
    http://msdn.microsoft.com/en-us/library/windows/desktop/bb787810.aspx
引用返信 削除キー/



トピック内ページ移動 / << 0 >>

このトピックに書きこむ

Pass/


- Child Tree -