首頁 >後端開發 >C++ >如何安全地從目錄中檢索文件,而忽略存取受限的子目錄?

如何安全地從目錄中檢索文件,而忽略存取受限的子目錄?

Linda Hamilton
Linda Hamilton原創
2025-01-27 23:11:09520瀏覽

How Can I Safely Retrieve Files from a Directory, Ignoring Access-Restricted Subdirectories?

使用Directory.GetFiles()安全檢索文件,忽略訪問受限子目錄

在使用Directory.GetFiles()方法執行文件系統操作時,遇到無法訪問的目錄可能會導致意外異常併中斷進程。本文探討了一種解決方案,允許您忽略這些受保護的文件夾並繼續從指定目錄檢索可訪問的文件。

提供的代碼片段嘗試獲取所選目錄及其子目錄中的文件列表。但是,程序缺乏訪問權限的文件夾的存在可能會觸發UnauthorizedAccessException異常,從而停止進程。

為了克服這個問題,引入了一種替代方法:

  • 手動子目錄迭代: 代碼不是利用Directory.GetFiles()的AllDirectories選項,而是逐一遍歷子目錄。對於每個子目錄,它嘗試檢索文件,同時優雅地處理任何異常。

修改後的代碼使用委託“fileAction”來處理單個文件。它迭代給定的文件夾,為每個可訪問的文件調用“fileAction”。對於子目錄,它嘗試遞歸地應用相同的過程。如果任何子目錄引發異常,則會捕獲該異常,並且進程會順利繼續。

通過實施此策略,代碼可以有效地忽略不可訪問的文件夾,確保在沒有任何中斷的情況下獲得可訪問文件的列表。

以上是如何安全地從目錄中檢索文件,而忽略存取受限的子目錄?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn