我正在尋找一種使用C#檢測文件損壞的方法。也許這太模糊了,但我並沒有尋找特定類型的腐敗,只是想知道是否有辦法檢測到一個文件已被損壞。任何人都知道這是可能的,如果是的話,你會怎麼做在C#中?謝謝。使用C#檢測文件損壞的通用方法?
1
A
回答
5
如果您知道該文件應該是什麼樣子,可以將其與已知的良好MD5散列進行比較。
除此之外,如果你正在尋找具體的腐敗模式。例如,一個字節序列應該位於某個位置,但會變得混亂,這可能是一個標誌。這一切都取決於你正在尋找什麼。
4
常見的方法是使用類似CRC的東西。您將文件中包含的CRC(通常附加到文件)與從有效負載計算出的CRC進行比較。如果它們不匹配,則知道數據已損壞。
1
有沒有API可以讓你檢測到文件損壞。你必須自己動手做,而你如何做到這一點主要取決於你的需求。
0
文件系統通常不會這樣做。據我所知,有三個原因。首先,任何類型的反腐敗算法都會涉及某種類型的校驗和,這在計算上有點貴。
其次,至少有兩個腐敗的原因。驅動器損壞時文件可能會損壞,但它們也可能被應用程序損壞。當然,當應用程序修改文件並保存它的新版本時,它總是會說即使用'poop'代替了每一個單詞,新版本也很棒。
第三,除了在文件損壞時拋出異常,您還能做什麼?如果你正在校驗文件,那麼你有一個更清晰的方式來知道文件被破壞了,但最終它仍然是壞的,除了停止之外,你可以做的並不多。
相關問題
- 1. 檢測到堆損壞| C++
- 2. 檢測損壞的png文件的有效方法?
- 3. 如何以編程方式檢測png文件是否使用c#.NET損壞?
- 4. 高效檢測損壞的jpeg文件?
- 5. 檢測損壞的OGG文件
- 6. 檢測損壞的Flash文件
- 7. 使用批處理腳本檢測文件損壞
- 8. 檢查一個PDF文件是否被損壞使用C#
- 9. 堆損壞檢測:普通塊(#176)後
- 10. 堆損壞檢測:普通塊(#126)後
- 11. 檢測到堆棧損壞
- 12. 檢測到堆損壞
- 13. 用於檢測內存損壞的Linux C調試庫
- 14. 文件損壞?
- 15. 文件損壞當使用OpenNETCF.Ftp
- 16. 如何使用Selenium檢測頁面上的SSL是否損壞
- 17. 檢測圖像是否損壞或損壞
- 18. 檢測/調試/查看可能損壞的TIFF/BigTiff文件
- 19. 可以ext4檢測損壞的文件內容?
- 20. C#文件下載是損壞的
- 21. C#FtpWebRequest創建損壞的文件
- 22. 檢測大量的損壞錢
- 23. 在Codeigniter中檢測損壞的鏈接
- 24. 檢查是否.bak文件已損壞
- 25. 檢查文件是否被損壞node.js
- 26. C++對象引用損壞
- 27. Response.TransmitFile損壞文件
- 28. Cpp文件損壞
- 29. 使用C#上傳到服務器後,Zip文件被損壞
- 30. 由於陣列使用情況,檢測到堆損壞
你能否詳細說明哪些類型的腐敗?使用允許糾錯的編碼可能是一個更好的主意。 – 2009-08-14 17:44:04