我现在做了一个文件传输工具,自己用的
其功能就是,检测一个目录,如果这个目录里面有文件修改,就把他进行传输
现在使用的是目录轮询,但是感觉不够好,因为每次轮询都是固定时间,睡眠太短导致 cpu 高,睡眠太长又不够及时。
所以我在想,windows 有没有一个 api ,能够告诉我最近修改了哪些文件,这样就可以做成触发模式,也不需要去遍历和轮询目录了
1
xtinput 2022-04-28 09:39:46 +08:00
git
|
2
GTim 2022-04-28 09:40:41 +08:00
linux inotify
|
3
Mithril 2022-04-28 09:49:11 +08:00
.NET 的话有 FileSystemWatcher
Windows API 的话 ReadDirectoryChangesW FindFirstChangeNotificationA 或者直接拉 Change Journals |
4
icyalala 2022-04-28 09:51:59 +08:00 1
|
5
32uKHwVJ179qCmPj 2022-04-28 09:52:46 +08:00
有
|
6
Lweiis 2022-04-28 09:57:09 +08:00
https://freefilesync.org/download.php
FreeFileSync ,包含一个 RealTimeSync 功能,可以监视文件夹并触发命令行 |
7
chenuu 2022-04-28 10:03:11 +08:00
rclone
|
8
summerwar 2022-04-28 10:27:20 +08:00
如果会 Python ,用 watchdog
|
9
dicc OP 各位 66666
|
10
kukat 2022-04-28 13:59:30 +08:00
rsync?
|
11
blless 2022-04-28 15:57:50 +08:00
之前用 Go 写东西用过 fsnotify https://github.com/fsnotify/fsnotify win 可用
同步感觉可以尝试一下 syncthing https://github.com/syncthing/syncthing 还挺好用 |
12
May725 2022-04-28 18:48:35 +08:00
|
13
0o0O0o0O0o 2022-04-28 19:08:14 +08:00 via iPhone
everything 的 SDK https://www.voidtools.com/support/everything/sdk/
自己实现就 https://en.wikipedia.org/wiki/USN_Journal |
15
flynaj 2022-04-28 23:37:24 +08:00 via Android
可以看其它软件是怎么处理的,看看 syncthing
|