Skip to content

dk900912/file-watcher

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Java support License Maven Central GitHub release GitHub Stars GitHub Forks GitHub issues GitHub Contributors GitHub repo size

本地文件变更监听是很简单的功能,但由于之前写的很 low,这次实现尽量更加地面向对象罢了。对于文件的重命名会先触发 ADD 事件,然后才是 DELETE 事件!

How to use

<dependency>
    <groupId>io.github.dk900912</groupId>
    <artifactId>file-watcher</artifactId>
    <version>1.0.1</version>
</dependency>
public class FileWatcherApplication {
    public static void main(String[] args) {
        FileSystemWatcher fileWatcher = new FileSystemWatcher();
        fileWatcher.addListener(new SimpleFileChangeListener());
        File directory1 = new File("C:\\Users\\dk900912\\IdeaProjects\\test");
        File directory2 = new File("C:\\Users\\dk900912\\IdeaProjects\\tset");
        fileWatcher.addSourceDirectories(Arrays.asList(directory1, directory2));
        // 仅仅监听 txt 文本文件的变更
        fileWatcher.setFileFilter(pathname -> pathname.getName().endsWith(".txt"));
        fileWatcher.start();

        for (;;){

        }
    }
}

在上述两个目录中新增或者更新文件,然后将输出:

2022-10-25 21:36:15.122  INFO 21428 --- [   File Watcher] i.g.d.f.l.SimpleFileChangeListener       : 0=={======> C:\Users\dk900912\IdeaProjects\test\1.txt (MODIFY) <======}==0
2022-10-25 21:36:34.729  INFO 21428 --- [   File Watcher] i.g.d.f.l.SimpleFileChangeListener       : 0=={======> C:\Users\dk900912\IdeaProjects\tset\新建 Microsoft Excel 工作表.xlsx (ADD) <======}==0

建议自行实现FileChangeListener回调接口。

You are welcome to enjoy it

About

watching specific directories for file changes

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages