在 VBA 和檔案雜湊中讀取二進位制 2GB +檔案

MICROSOFT 類的方法

方法名稱 描述
開了 返回一個布林值,指示檔案是否已開啟。
OpenFilesFileNam e As String) 開啟 sFileName 引數指定的檔案。
CloseFile 關閉當前開啟的檔案。
ReadBytesByteCount As Long) 讀取 ByteCount 位元組並在 Variant 位元組陣列中返回它們並移動指標。
WriteBytesDataBytes() As Byte) 將位元組陣列的內容寫入檔案中的當前位置並移動指標。
紅暈 強制 Windows 重新整理寫入快取。
SeekAbsoluteHighPos As Long, LowPos As Long) 將檔案指標移動到檔案開頭的指定位置。雖然 VBA 將 DWORDS 視為有符號值,但 API 會將它們視為無符號。使高階引數非零超過 4GB。對於 2GB 到 4GB 之間的值,低位 DWORD 將為負。
SeekRelative偏移為長) 將檔案指標從當前位置移動到+/- 2GB。你可以通過將 64 位有符號偏移轉換為兩個 32 位值來重寫此方法以允許大於 2GB 的偏移。

MICROSOFT 的類特性

屬性 描述
檔案控制代碼 當前開啟檔案的檔案控制代碼。這與 VBA 檔案控制代碼不相容。
檔名 當前開啟的檔案的名稱。
自動重新整理 設定/指示 WriteBytes 是否會自動呼叫 Flush 方法。

普通模組

功能 筆記
GetFileHashsFile 為 String, uBlockSize 為 Double, sHashType 為 String) 只需要輸入要雜湊的完整路徑,要使用的 Blocksize(位元組數),以及要使用的雜湊型別 - 私有常量之一: HashTypeMD5HashTypeSHA1HashTypeSHA256HashTypeSHA384HashTypeSHA512 。這被設計為儘可能通用。

你應該相應地取消/評論 uFileSize As Double 。我測試了 MD5 和 SHA1。