gpt4 book ai didi

go - 仅当文件自上次调用 os.Lstat 后发生更改时才调用 os.Lstat

转载 作者:IT王子 更新时间:2023-10-29 02:02:28 27 4
gpt4 key购买 nike

我正在尝试编写一个程序,calcsize,计算所有子目录的大小。我想创建一个结果缓存,并且只有在我上次运行该程序后目录发生变化时才重新遍历该目录。

类似于:

./calcsize
//outputs
/absolute/file/path1/ 1000 Bytes
/absolute/file/path2/ 2000 Bytes

我已经用我自己的 walk 实现遍历目录,因为内置的 go filepath.Walk 已经在每个文件上调用 Lstat

有什么方法可以在不对每个文件调用 Lstat 的情况下知道一个目录或一组文件是否已更改?也许是我不知道的系统调用?

最佳答案

一般来说,不会。但是你可能想看看:https://github.com/mattn/go-zglob/blob/master/fastwalk/fastwalk_unix.go

如果您只关心文件,则可以使用该数据跳过一些统计调用。

关于go - 仅当文件自上次调用 os.Lstat 后发生更改时才调用 os.Lstat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47725336/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com