finish copy files follow bytes sort

This commit is contained in:
Burgess Leo
2025-05-22 09:16:37 +08:00
parent cd536a6bd3
commit 0c98dfecda
7 changed files with 566 additions and 47 deletions

37
files_utils/public.py Normal file
View File

@@ -0,0 +1,37 @@
def ReadDiskBytes(volume_letter: str, start_byte: int, length: int) -> bytes:
"""
从指定磁盘的指定起始位置读取指定长度的字节。
:param volume_letter: 盘符(如 "Y"
:param start_byte: 起始字节位置(整数)
:param length: 要读取的字节数(整数)
:return: 读取到的原始字节数据bytes
"""
if not isinstance(volume_letter, str) or len(volume_letter.strip()) != 1:
raise ValueError("drive_letter 必须是单个字母,如 'Y'")
# 构建 Windows 设备路径格式:\\.\Y:
disk_path = f"\\\\.\\{volume_letter.strip().upper()}:"
try:
with open(disk_path, "rb") as disk:
disk.seek(start_byte)
data = disk.read(length)
return data
except PermissionError:
raise PermissionError("权限不足,请以管理员身份运行程序")
except Exception as e:
raise RuntimeError(f"读取磁盘失败:{e}")
if __name__ == "__main__":
drive = "Y"
start = 687685632
size = 7163904
try:
content = ReadDiskBytes(drive, start, size)
print(f"成功读取 {len(content)} 字节内容。前100字节为")
print(content[:100])
except Exception as e:
print("错误:", e)