簡體   English   中英

C#/ C ++-如何獲取路徑太長或權限被拒絕的目錄的大小?

[英]C#/C++ - how to get size of directory where path is too long, or permission denied?

關於如何獲取目錄的大小(遞歸求和文件的長度),有很多問題和答案。

但是,我所看到的所有答案都是不完整的。 在遞歸地遍歷卷的地方,有拋出異常的目錄-例如UnauthorizedAccessException 我還注意到在Win 7中有超過260個字符的路徑,該路徑拋出PathTooLongException

所有這些意味着,至少在C#中,您無法掃描C:\\驅動器並無法獲得卷的大小的真實數字,因為您必須跳過任何引發異常的目錄或文件。

我正在尋找一種獲取給定目錄的磁盤上存儲的字節的正確,正確,准確的數字的方法。 我不在乎是否必須走低級並編寫一些C ++或調用Win API。

如何做到這一點? 謝謝。

這不是一件容易的事,但是可以做到,盡管我不確定您是否可以克服權限問題,但是本質上您必須要做的就是在較低級別上直接讀取NTFS主文件表,如本精彩文章所示。 這個有同情心的開發人員共享的代碼這些開發人員從另一個這樣的開發人員那里得到了創意。

這是您有幫助的參考 Google的“ NTFS體系結構”或為更多規格而設計。 並請分享您的一些研究工作:)

編輯另一個可以幫助您的項目 經過測試后,它說它僅支持NTFS 3.0或更高版本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM