Files
l-s/README.md
2025-11-21 00:14:11 +08:00

69 lines
2.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# l-s
Summary any files meta.
## 使用说明
接收1个命令行参数为文件/文件夹路径,如命令行参数为空,则默认为当前路径。
元数据均以json格式保存且经过pretty打印以方便人类阅读。
对于输入参数是文件的情况:
文件的元数据命名与原文件相同仅新增json拓展名。
文件的元数据保存路径是其所在路径下的meta子文件夹如果元数据保存路径不存在则新建。
如果文件的元数据不存在,则计算元数据并保存。
如果文件的元数据存在则对元数据中的xxh128部分进行校验。
如果校验通过,则打印校验成功。
如果校验不通过,计算当前的元数据并打印到标准输出,保留原元数据文件不动。
对于输入参数是文件夹的情况:
遍历这个文件夹,以字母序遍历遇到的每一个子文件夹和文件。
文件夹的元数据文件就保存在其中,命名为`meta.json`
如果文件夹的元数据不存在,则遍历计算并保存。
如果文件夹的元数据存在,则对原元数据文件重命名为`meta-old.json`并对其中所有文件的xxh128部分校验。
遍历如果发现有新增文件或删除文件,都应打印到标准输出提示用户。
如果全部校验一致,则重新命名回`meta.json`
标准`meta.json`的格式如下:
```json
{
"dir_name": "test",
"dirs": [
{
"dir_name": "child",
"dirs": [],
"files": [
{
"basename": "233",
"size": 4,
"friendly_size": "4.00B",
"mtime": 1763654099,
"head_115": "28AAB5A575FA1138E2CE5B1366AE697685775011",
"head_baidu": "1490AAA92CB684B2110DDB29D7A1AC15",
"ed2k": "6CB03133656BDB8DFC780EBBD4FF47CC",
"md5": "9F3D9739B11C2A4B08EA48512AC467F6",
"sha1": "10E25C6EC9A30C731BF82E5DBA37BC693E9F615D",
"sha256": "5F8064636753265C7F1B1EE075DF77E1AE9BCE7E94831DE583784A0C13EB902F",
"xxh128": "B92C6051418D532F7E933C08C44C4C88"
}
]
}
],
"files": [],
"v": "2022-10-24"
}
```