
1 zhuzhibin 2020-11-28 02:07:26 +08:00 via iPhone 有啥场景需要运用到? |
2 Livid MOD OP PRO |
3 GG668v26Fd55CP5W 2020-11-28 02:20:40 +08:00 via iPhone 挺好的工具,我之前一直用 nodemon |
4 ooh 2020-11-28 02:25:58 +08:00 fsnotify ?要自己写点代码 |
5 ysmood 2020-11-28 02:27:19 +08:00 一直用自己写的,entr 这种兼容性很差,比如 docker 的 volume 就不行 我这个是完全跨平台的,感觉也没必要追求无 polling,gitignore 一般就够了 https://github.com/ysmood/kit#guard |
6 Livid MOD OP PRO |
7 b00tyhunt3r 2020-11-28 07:21:40 +08:00 @ysmood 除了 poll 以外还有别的啥实现方法吗 |
8 elfive 2020-11-28 07:37:20 +08:00 via iPhone Windows 下,这种监视文件夹内文件状态改变的程序,都会遇到一个如果大量文件同时改变,容易漏消息的问题……如果一个消息处理不及时,就会漏掉临近的消息…… |
9 loading 2020-11-28 07:56:08 +08:00 via Android |
10 janda 2020-11-28 08:20:43 +08:00 同步盘是不是就是通过这类触发的、本地有改变过文件,就会自动上传到网上同步盘! 云盘文件有改过、客户端也会自动同步回来 |
11 ysc3839 2020-11-28 08:27:48 +08:00 via Android Windows 有同功能的 API,不过现成的软件似乎没有? |
12 maxxfire 2020-11-28 08:44:17 +08:00 版主,你不会注册个马甲来发常规贴吗,你这样冠冕堂皇的发帖感觉怪怪的。。 |
13 vilicvane 2020-11-28 09:06:25 +08:00 Facebook 有个 watchman https://facebook.github.io/watchman/ |
14 MeteorCat 2020-11-28 09:59:45 +08:00 via Android git 版本变动就行了 |
16 kimdir 2020-11-28 10:03:13 +08:00 via iPhone 付费的 hazel 是不是也是这个作用 |
17 Jirajine 2020-11-28 10:04:13 +08:00 via Android |
18 zander 2020-11-28 10:08:14 +08:00 正好手头有一些需求,不过这个对十万级文件量的文件夹支持的好吗。 |
19 pengfei 2020-11-28 10:17:16 +08:00 https://stackoverflow.com/questions/9402908/java-7-watch-service 我发 java 是不是显得不是很合群 |
20 janda 2020-11-28 10:41:43 +08:00 |
21 momo1999 2020-11-28 10:53:33 +08:00 ::ReadDirectoryChangesW(dir, ¬ify, sizeof(notify), TRUE, FILE_NOTIFY_CHANGE_FILE_NAME | FILE_NOTIFY_CHANGE_DIR_NAME, &dwBytes, &overlapped, NULL); 主要就这一个 API |
22 billzhuang 2020-11-28 11:11:40 +08:00 这类 filewatcher 我记得都有个头痛的问题,就是如果监控的跟目录被删除了,再新建就不会再监控了,要手动处理 |
23 menyakun 2020-11-28 15:56:54 +08:00 我在 mac 和 linux 下用的是 fswatch,我看官方 readme 里面也有 windows 的,不知道行不行 |
24 2020-11-29 00:50:27 +08:00 @b00tyhunt3r @loading 目前来讲 poll 是最稳定的方式,类似 FileSystemWatcher,fsnotify 之类的都有诸多兼容问题,比如 fsnotify 自己都说对 mac 支持不好。要是有人能有更好的解决方案我倒是很想学习下。 |
25 guochao 2020-11-29 21:07:16 +08:00 Windows 下面有个 Everything 工具,推荐。其中的原理是读取 NTFS 的 USN 日志。我胡乱搜了一下: https://blog.csdn.net/kaooo/article/details/8298537 对于 Linux 来说内核的 inotify 可以保证每个订阅的修改都通知到程序,Mac/BSD 的大概是 kqueue+fsevents |
27 Mithril 2020-11-30 07:40:48 +08:00 @elfive 目前用 FileSystemWatcher 没发现这个问题,不要在消息响应里面写太多东西,直接接到你自己的消息队列里再处理就可以了。 我基本上每次弄进去几千上万的小文件没见出过问题。 |
28 abersheeran 2020-11-30 09:07:40 +08:00 Python 有一个 watchdog 的模块,它自带的命令就可以做到你说的这个。如果有更复杂的需求,你甚至可以写几行 Python 代码来解决。并且,Mac 、Linux 、Windows 都支持。 |
29 wangdk23411 2020-11-30 10:15:33 +08:00 不错,可以放在 ftp 流程后面做分类处理 |
30 q197 2020-11-30 10:53:07 +08:00 uwp 也有个函数 |
32 nnnToTnnn 2020-11-30 11:13:05 +08:00 QT 有一个 QFileSystemWatcher 感觉也挺方便的。 |
33 digimoon 2020-11-30 11:15:03 +08:00 linux 上我用 inotify,但是这个不能在挂载的网络目录用例如 smb,这个能解决么 |
35 LDa 2020-12-01 04:50:57 +08:00 via iPhone 插个眼,明天下午来收割方案 |
36 ob 2020-12-10 22:20:57 +08:00 NewFileGo 可以一试: http://www.joejoesoft.com/vcms/170/ |