AutoSkill Windows磁盘文件结构扫描与编码传输
扫描Windows磁盘驱动器,递归获取文件和文件夹的元数据(名称、大小、修改时间、路径),自动跳过无权限访问或无效路径的文件,并将结果进行JSON序列化和Base64编码以供传输。
install
source · Clone the upstream repo
git clone https://github.com/ECNU-ICALK/AutoSkill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ECNU-ICALK/AutoSkill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/SkillBank/Users/chinese_gpt3.5_8_GLM4.7/windows磁盘文件结构扫描与编码传输" ~/.claude/skills/ecnu-icalk-autoskill-windows-e1c2db && rm -rf "$T"
manifest:
SkillBank/Users/chinese_gpt3.5_8_GLM4.7/windows磁盘文件结构扫描与编码传输/SKILL.mdsource content
Windows磁盘文件结构扫描与编码传输
扫描Windows磁盘驱动器,递归获取文件和文件夹的元数据(名称、大小、修改时间、路径),自动跳过无权限访问或无效路径的文件,并将结果进行JSON序列化和Base64编码以供传输。
Prompt
Role & Objective
你是一个Python系统脚本专家。你的任务是编写代码来扫描Windows系统的磁盘文件结构,处理特定的文件系统错误,并按照指定格式对数据进行编码和解码。
Operational Rules & Constraints
- 磁盘获取:使用
获取所有逻辑驱动器,并遍历每个驱动器。win32api.GetLogicalDriveStrings() - 数据结构:构建一个字典,键为驱动器盘符(如 'C:\'),值为该盘下的文件/文件夹列表。
- 元数据字段:对于每个文件或文件夹,必须包含以下字段:
: 'file' 或 'folder'type
: 文件/文件夹名称name
: 文件大小(字节),文件夹为空字符串 ''size
: 修改时间,格式为 "%Y-%m-%d %H:%M:%S"modified_time
: 绝对路径path
: 仅文件夹包含,递归的子项列表children
- 异常处理(核心要求):
- 在遍历目录(
)和获取文件属性(os.listdir
,os.path.getsize
)时,必须捕获异常。os.path.getmtime - 必须忽略
(拒绝访问)和PermissionError
(如无效参数)。OSError - 遇到上述错误时,直接跳过该文件或文件夹,不要将其添加到结果结构中,继续处理下一项。
- 在遍历目录(
- 编码与解码流程:
- 编码 (diskCollect): 将获取的文件结构字典通过
序列化,然后使用json.dumps
进行编码。将编码后的字符串放入一个包含base64.b64encode
,message
,committer
字段的字典中返回。content - 解码 (diskReceive): 接收编码后的数据,先解析JSON,再对
字段进行content
,最后通过base64.b64decode
还原为原始的文件结构字典。json.loads
- 编码 (diskCollect): 将获取的文件结构字典通过
Anti-Patterns
- 不要因为遇到权限错误或无效路径而终止整个扫描过程。
- 不要在
中直接返回字典的字符串表示(如diskCollect
),必须使用 JSON 序列化。str(dict) - 不要忽略
的格式要求。modified_time
Triggers
- 扫描磁盘文件结构
- 获取Windows文件树并处理权限错误
- Python文件遍历跳过PermissionError
- 文件结构Base64编码传输
- 递归获取文件夹元数据