Windows 下浏览器无法访问路径超长的文件夹

15 天前
 Vnkai

虽然知道这是一个历史问题:最大路径长度限制

修改了注册表和组策略,貌似没有太大作用。

放一张代码片段,大家帮忙看一下

   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))
      }
549 次点击
所在节点    前端开发
3 条回复
ETiV
15 天前
要为每个应用程序启用新的长路径行为,必须满足两个条件。 必须设置注册表值,应用程序清单必须包含 longPathAware 元素。

这段话看了吗:必须满足两个条件。
opengps
15 天前
超长路径属于使用不当的做法,需要解决问题的是使用方法,没必要所有问题都兼容处理,适当拦截提示就行了
Vnkai
14 天前
感谢,说到也是。路径超长的场景确实罕见,偶尔这种情况,还是使用 mac 电脑省事。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/1141389

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX