V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Vnkai
V2EX  ›  前端开发

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

  •  
  •   Vnkai · 13 天前 · 514 次点击

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

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

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

       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))
          }
    
    3 条回复    2025-06-27 13:40:17 +08:00
    ETiV
        1
    ETiV  
       13 天前 via iPhone   ❤️ 1
    要为每个应用程序启用新的长路径行为,必须满足两个条件。 必须设置注册表值,应用程序清单必须包含 longPathAware 元素。

    这段话看了吗:必须满足两个条件。
    opengps
        2
    opengps  
       13 天前
    超长路径属于使用不当的做法,需要解决问题的是使用方法,没必要所有问题都兼容处理,适当拦截提示就行了
    Vnkai
        3
    Vnkai  
    OP
       12 天前
    感谢,说到也是。路径超长的场景确实罕见,偶尔这种情况,还是使用 mac 电脑省事。
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5217 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 03:36 · PVG 11:36 · LAX 20:36 · JFK 23:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.