2012-06-08 47 views
0

我在可可中編寫了一個小工具來計算文件的MD5,SHA-1和其他哈希函數。如果理解正確,至少可以通過這種方式實現MD5算法,我只需要同時載入文件的一小部分 - 這似乎是一個好主意,因爲我不想佔用全部用戶的RAM,然後一些用於計算10Gb存檔的散列。如何在不加載Cocoa的情況下訪問二進制文件數據?

我該如何使用Cocoa來實現這一目標?

回答

3

NSData可以對文件進行內存映射,以便底層操作系統(Mac OS或iOS)虛擬內存系統根據需要自動在文件的各個部分中進行頁面瀏覽。使用NSData構造函數中的參數options:參數和NSDataReadingMappedIfSafe or NSDataReadingMappedAlways選項。

+0

不錯。我不知道這件事。 –

1

要做到這一點,沒有內存映射文件,可能會充滿,你可以使用NSFileHandle,並使用-readDataOfLength:只讀大小的數據塊。

相關問題