2

メソッドを呼び出すプログラムを(Windows 7で)DirectoryInfo.GetFiles()作成しましたが、「ドキュメントと設定」フォルダーにはUnauthorizedAccessの例外があります。

次のような多くのソリューションを試しました。

でマニフェストを作成する


    `<requestedExecutionLevel level="highestAvailable" uiAccess="false" />`

and also with this

    DirectorySecurity dSecurity = Directory.GetAccessControl(dir.FullName);
    dSecurity.AddAccessRule(new FileSystemAccessRule("Luca", FileSystemRights.FullControl, AccessControlType.Allow));
    
    Directory.SetAccessControl(dir.FullName, dSecurity);

問題は何ですか?

4

4 に答える 4

2

まず、GetFiles(...) の代わりに DirectoryInfo.EnumerateFiles(...) を使用する必要があります。EnumerateFiles(...) を使用すると、実際に必要になるまでリスト全体を取得する必要がなくなります。

しばらく前にこの問題に遭遇し、アクセスを選択したフォルダの列挙を完了するために、代わりの IEnumerable を実装する必要があることがわかりました。

私の研究結果は次のスレッドで見ることができます。DirectoryInfo.EnumerateFiles(...) は UnauthorizedAccessException (およびその他の例外) を引き起こします

于 2013-07-25T21:05:52.737 に答える