我有一个包含约 10 000 个子文件夹的文件夹。
任何 linux API 或工具都可以监视下面任何文件夹中的任何更改,例如 /SharedRoot 还是我必须为每个文件夹设置 inotify?(即,如果我想为 10k+ 个文件夹执行此操作,我会松动)。我想是的,因为我已经看到了这种低效方法的例子,例如http://twistedmatrix.com/trac/browser/trunk/twisted/internet/inotify.py?rev=28866#L345
我的问题:
我需要将文件夹与最近活动的“项目”按时间排序。
当文件更改时,该文件上方的每个文件夹都应更新其上次修改的时间戳以匹配该文件。延迟没问题。打开一个文件(通常是 MS Excel)并再次关闭,它的文件日期可以上下跳跃。出于这个原因,我需要等到文件关闭后,然后将该文件的文件夹排队以进行检查,然后我才去其文件夹中查找最新的文件,因为触发文件的文件日期可能已经通过 Excel 或类似程序回溯到其原始时间戳。此外,如果使用/创建了来自同一文件夹的多个文件,缓冲该文件夹父级的时间戳以至少将一堆更新折叠成一个延迟更新是有意义的。
我正在寻找一个linux解决方案。我有一些可以在 Windows 服务器上运行的代码,大部分排队功能都在这里:http: //github.com/sesam/FolderdateFollowsFiles/blob/master/FolderdateFollowsFiles/Follower.vb
可用API:s
inotify 在windows 上的亲戚ReadDirectoryChangesW,可以监视一个文件夹及其整个子树;请参阅http://msdn.microsoft.com/en-us/library/aa365465(VS.85).aspx上的 bWatchSubtree
桑巴?
修补 samba 源代码是可能的,但也许已经有可用的钩子了?其他可能性,例如客户端(各种 Windows 版本)和监视文件活动以递归更新文件夹?