虽然知道这是一个历史问题:最大路径长度限制。
修改了注册表和组策略,貌似没有太大作用。
放一张代码片段,大家帮忙看一下
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 13 天前 via iPhone ![]() 要为每个应用程序启用新的长路径行为,必须满足两个条件。 必须设置注册表值,应用程序清单必须包含 longPathAware 元素。
这段话看了吗:必须满足两个条件。 |
![]() |
2
opengps 13 天前
超长路径属于使用不当的做法,需要解决问题的是使用方法,没必要所有问题都兼容处理,适当拦截提示就行了
|
3
Vnkai OP 感谢,说到也是。路径超长的场景确实罕见,偶尔这种情况,还是使用 mac 电脑省事。
|