请问有没有这样的 api

2022-04-28 09:39:11 +08:00
 dicc

我现在做了一个文件传输工具,自己用的
其功能就是,检测一个目录,如果这个目录里面有文件修改,就把他进行传输
现在使用的是目录轮询,但是感觉不够好,因为每次轮询都是固定时间,睡眠太短导致 cpu 高,睡眠太长又不够及时。
所以我在想,windows 有没有一个 api ,能够告诉我最近修改了哪些文件,这样就可以做成触发模式,也不需要去遍历和轮询目录了

2525 次点击
所在节点    问与答
15 条回复
xtinput
2022-04-28 09:39:46 +08:00
git
GTim
2022-04-28 09:40:41 +08:00
linux inotify
Mithril
2022-04-28 09:49:11 +08:00
.NET 的话有 FileSystemWatcher
Windows API 的话 ReadDirectoryChangesW FindFirstChangeNotificationA 或者直接拉 Change Journals
icyalala
2022-04-28 09:51:59 +08:00
32uKHwVJ179qCmPj
2022-04-28 09:52:46 +08:00
Lweiis
2022-04-28 09:57:09 +08:00
https://freefilesync.org/download.php
FreeFileSync ,包含一个 RealTimeSync 功能,可以监视文件夹并触发命令行
chenuu
2022-04-28 10:03:11 +08:00
rclone
summerwar
2022-04-28 10:27:20 +08:00
如果会 Python ,用 watchdog
dicc
2022-04-28 10:49:02 +08:00
各位 66666
kukat
2022-04-28 13:59:30 +08:00
rsync?
blless
2022-04-28 15:57:50 +08:00
之前用 Go 写东西用过 fsnotify https://github.com/fsnotify/fsnotify win 可用
同步感觉可以尝试一下 syncthing https://github.com/syncthing/syncthing 还挺好用
May725
2022-04-28 18:48:35 +08:00
以前在 v2 看到的
监听文件变化,自定义后续操作
https://github.com/dengsgo/fileboy
0o0O0o0O0o
2022-04-28 19:08:14 +08:00
dicc
2022-04-28 20:02:17 +08:00
@summerwar 终极解决方案!!
毫毫毫毫毫秒级的,应该是用了 win32api
结贴
flynaj
2022-04-28 23:37:24 +08:00
可以看其它软件是怎么处理的,看看 syncthing

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/849715

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX