ホームページ > バックエンド開発 > C++ > Directory.GetFiles() の使用時にアクセス許可エラーを無視するにはどうすればよいですか?

Directory.GetFiles() の使用時にアクセス許可エラーを無視するにはどうすればよいですか?

DDD
リリース: 2025-01-27 23:06:10
オリジナル
792 人が閲覧しました

How Can I Ignore Permission Errors When Using Directory.GetFiles()?

directory.getFiles()のファイルとファイルフォルダーの権限をエレガントに処理します。

列挙ディレクトリ内のファイルを使用すると、保護されたフォルダーまたはファイルが発生した場合、障害物が発生する可能性があります。これにより、異常のためにファイルリストプロセスが突然停止する可能性があります。ただし、これらの制限されたアイテムをエレガントに無視し、アクセス可能なファイルを通過し続ける場合、どうすればよいですか? キーは、

パラメーターを放棄し、再帰を手動で処理することです。各サブディレクトリをチェックすることにより、プロセスをより慎重に制御できます。

Directory.GetFiles()次のコードフラグメントを考慮してください:

このコードでは、委員会(AllDirectories)を使用して、見つかった各ファイルの操作を指定します。

ディレクトリを再帰的に探索し、

をキャプチャし、調査を続行します。

<code class="language-csharp">using System;
using System.IO;

static class Program
{
    static void Main()
    {
        string path = ""; // TODO
        ApplyAllFiles(path, ProcessFile);
    }
    static void ProcessFile(string path) {/* ... */}
    static void ApplyAllFiles(string folder, Action<string> fileAction)
    {
        try
        {
            foreach (string file in Directory.GetFiles(folder))
            {
                fileAction(file);
            }
        }
        catch (UnauthorizedAccessException)
        {
            // 处理异常
        }
        catch (Exception ex)
        {
            // 处理其他异常
        }

        foreach (string subDir in Directory.GetDirectories(folder))
        {
            try
            {
                ApplyAllFiles(subDir, fileAction);
            }
            catch (UnauthorizedAccessException)
            {
                // 处理异常,例如记录错误信息或忽略
            }
            catch (Exception ex)
            {
                // 处理其他潜在异常
            }
        }
    }
}</code>
ログイン後にコピー
手動管理の再帰を通じて、かけがえのないフォルダーまたはファイルを効果的にバイパスして、許可されたアイテムがファイルリストの操作を中断することなくのみ処理されるようにすることができます。 改良されたコードは、より堅牢なプログラムを確保するためにも処理されました。

以上がDirectory.GetFiles() の使用時にアクセス許可エラーを無視するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート