展开本页目录
开始前准备什么
- 下载本题完整练习包,区分待实现 starter 与作者完成 reference。
- 按README准备本题原生依赖;所有输入均为原创或明确标注的本地fixture。
- 本地练习不需要付费模型Key;真实模型调用未执行,MiniLM题另有明确实际推理说明。
- 准备嵌套目录
- 启用目录选择
- 读取相对路径
- 比较同名文件
- 识别重复内容
- 保存路径清单
- 复跑目录输入
原创输入、待完成starter、作者reference及实际运行产物,依README本地准备依赖。
环境要求、具体操作、产物核对与未运行范围。
1. 准备嵌套目录
输入有三层子目录和五个原创文本文件。docs/a.txt 与 archive/a.txt 同名但内容不同,另一份 copy.txt 与 docs/a.txt 内容相同。
2. 启用目录选择
使用 input type=file、webkitdirectory 和 multiple,让浏览器真正返回 File 对象。测试直接选择练习目录,没有人工伪造 webkitRelativePath。
本地启动与复现
cd reference
python3 -m http.server 87873. 读取相对路径
逐个读取 webkitRelativePath、size 和原始字节,路径保留顶层目录与子目录。不能只用 File.name,否则同名项会覆盖或消失。
4. 比较同名文件
切换“同名不同内容”视图,核对两条 a.txt 各有独立相对路径与不同SHA前缀。哈希完整值在下载记录中,页面只展示可读前缀。
5. 识别重复内容
切换“异名相同内容”,对同哈希的两条路径做提示。重复内容不等于允许自动删除;本题保留所有五条路径,不写用户磁盘。
6. 保存路径清单
全量清单应有五条独立路径、四份独立内容。导出时以相对路径为键,既保留目录结构,也能发现内容去重机会。
7. 复跑目录输入
重新选择同一练习目录,比对路径集合与哈希。使用v0实现自己的界面时保留这些合同;作者本地浏览器已运行,v0云平台生成会话未运行。
怎样确认已经完成
- 浏览器真实目录File输入保留五条路径、四份内容,同名不覆盖,重复内容仍保留独立路径。
- 用webkitdirectory选择后保留webkitRelativePath,不能只拿File.name。本题三层目录的五条真实路径都被保留。
- 以完整相对路径作为身份,同名不同内容各存一条;内容哈希只提示重复,不覆盖也不自动删除。
常见问题
网页上传整个文件夹,为什么子目录都丢了?
用webkitdirectory选择后保留webkitRelativePath,不能只拿File.name。本题三层目录的五条真实路径都被保留。
两个目录都有同名文件,怎么避免上传时互相覆盖?
以完整相对路径作为身份,同名不同内容各存一条;内容哈希只提示重复,不覆盖也不自动删除。
哪些部分实际运行,哪些需要独立验证?
浏览器真实目录File输入保留五条路径、四份内容,同名不覆盖,重复内容仍保留独立路径。 目标AI助手账号生成、云平台部署和生产环境不在本次执行范围。




