dqkv0603
2017-12-09 04:33
浏览 28
已采纳

仅当文件自上次调用os.Lstat以来已更改时才调用os.Lstat

I'm trying to write a program, calcsize, that calculates the size of all sub directories. I want to create a cache of the result and only re-walk the directory if it has changed since the last time I've run the program.

Something like:

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

I'm already walking the dirs with my own walk implementation because the built in go filepath.Walk is already calling Lstat on every file.

Is there any way to know if a directory or set of files has changed without calling Lstat on every file? Maybe a system call I'm not aware of?

图片转代码服务由CSDN问答提供 功能建议

我正在尝试编写一个程序, calcsize </ code>,该程序计算所有文件的大小 子目录。 我想创建结果的缓存,并且仅当目录自上次运行该程序以来已更改时才重新遍历该目录。</ p>

类似以下内容:</ p> \ n

  ./ calcsize 
 //输出
 / absolute / file / path1 / 1000字节
 / absolute / file / path2 / 2000字节
 </ code> </ pre> \  n 
 

我已经使用自己的walk实现遍历了目录,因为内置的go filepath.Walk </ code>已在每个文件上调用 Lstat </ code>。 </ p>

有没有办法知道目录或文件集是否已更改而无需在每个文件上调用 Lstat </ code>? 也许我不知道系统调用吗?</ p> </ div>

2条回答 默认 最新

相关推荐 更多相似问题