Files
2026-01-11 18:38:14 +08:00

49 lines
1.5 KiB
Python

import os
import hashlib
import json
def calculate_md5_and_size(file_path):
md5_hash = hashlib.md5()
file_size = 0
with open(file_path, "rb") as file:
for byte_block in iter(lambda: file.read(4096), b""):
md5_hash.update(byte_block)
file_size += len(byte_block)
return md5_hash.hexdigest(), file_size
def process_folder(folder_path):
md5_checksum_dict = {}
size_dict = {}
for root, dirs, files in os.walk(folder_path):
for file_name in files:
file_path = os.path.join(root, file_name)
relative_path = os.path.relpath(file_path, folder_path)
md5_checksum, file_size = calculate_md5_and_size(file_path)
md5_checksum_dict[relative_path.replace("\\", "/")] = md5_checksum
size_dict[relative_path.replace("\\", "/")] = file_size
return md5_checksum_dict, size_dict
def write_to_file(file_name, data):
with open(file_name, "w") as file:
file.write(json.dumps(data, separators=(',', ':')))
if __name__ == "__main__":
resources_folder = "Resources"
md5_checksum_dict, size_dict = process_folder(resources_folder)
md5_file_name = "OverRapid/Md5ListChecksum.json"
size_file_name = "OverRapid/SizeList.json"
write_to_file(md5_file_name, md5_checksum_dict)
write_to_file(size_file_name, size_dict)
print(f"MD5 checksums saved to {md5_file_name}")
print(f"File sizes saved to {size_file_name}")