Closed JasonGrass closed 10 months ago
FileSystemFileHandle.move() feature 的添加记录
FileSystemFileHandle.move() for local files - Chrome Platform Status
这里是关于 FileSystemFileHandle.move() 的开发者讨论
Intent to Ship: FileSystemFileHandle.move() for local files
但看起来,move 来实现重命名,还是很慢。不清楚发生了什么。相关修改没有发布到 111 版本?
FileSystemFileHandle::move()
这个方法,MDN 中暂时还没有文档,FileSystemFileHandle - Web API 接口参考 | MDN
从 chromium 源码来看,是区分了移动与重命名的。在没有指定目录的情况下,应该使用 Rename 方法,而单纯的 Rename 方法应该很快才对。
不知道为啥重命名大文件时,会这么慢。
file_system_file_handle.h - Chromium Code Search
具体提交记录:
FSA: Consolidate move() and rename() to just move() · chromium/chromium@f5483e3
FileSystemFileHandle.move
方法对文件进行重命名时,会更改文件的“修改时间”,而手动重命名或使用本地重命名工具,不会有这个问题。
在这里提交了反馈
Add FileSystemHandle.move method by a-sully · Pull Request #10 · whatwg/fs
FileSystemFileHandle::move()
早期问题
对文件进行重命名的核心方法,是
FileSystemFileHandle::move()
这个方法,目前还没有 MDN 文档。从测试结果来看,此方法采用的似乎是复制拷贝的操作,在重命名大文件时,操作非常慢。
如果你有大量的大文件需要重命名,建议考虑本地批量重命名工具。
最新版本已修复
在使用 Chrome
120.0.6099.110
这个版本时,发现已经没有这个问题了,使用 move 方法能够飞快完成重命名操作。不知道是之前的操作有问题(比如特定文件才会出现这个问题?),还是确实是最近哪个版本修复了。
anyway,这是个好消息。