
虽然知道这是一个历史问题:最大路径长度限制。
修改了注册表和组策略,貌似没有太大作用。
放一张代码片段,大家帮忙看一下
if (entry.isDirectory) { const dirReader = entry.createReader() let entries: any[] = [] // 由于浏览器 API 限制每次只能读取 100 个文件,所以需要多次读取 while (true) { const batch: any = await new Promise((resolve) => dirReader.readEntries(resolve) ) entries = entries.concat(batch) if (batch.length !== 100) { break } } .......... // 将文件添加到上传列表 const file = await new Promise<File>((resolve) => { // console.log('<UNK>:', entry) entry.file(resolve) //// 超长的路径到这就读取不到了,也不报错。 }).catch((err) => { console.error('获取文件失败:', err) throw err }) uploadMap.set(uploadKey, createUploadItem(file, currentPath)) } 1 ETiV 122 天前 via iPhone 要为每个应用程序启用新的长路径行为,必须满足两个条件。 必须设置注册表值,应用程序清单必须包含 longPathAware 元素。 这段话看了吗:必须满足两个条件。 |
2 opengps 122 天前 超长路径属于使用不当的做法,需要解决问题的是使用方法,没必要所有问题都兼容处理,适当拦截提示就行了 |
3 Vnkai OP 感谢,说到也是。路径超长的场景确实罕见,偶尔这种情况,还是使用 mac 电脑省事。 |