zoukankan      html  css  js  c++  java
  • java读取某个目录是否有新增文件(轮询)

    使用 commons-io 中的文件监控

    jar包:

    package org.demo.file;
    
    import java.util.concurrent.TimeUnit;
    import org.apache.commons.io.filefilter.FileFilterUtils;
    import org.apache.commons.io.monitor.FileAlterationMonitor;
    import org.apache.commons.io.monitor.FileAlterationObserver;
    
    /**
     * 文件监控测试
     * @author  
     * @date    2010-11-16
     * @file    org.demo.file.FileMonitor.java
     */
    public class FileMonitorTest {
    
        /**
         * @param args
         * @throws Exception 
         */
        public static void main(String[] args) throws Exception {
            // 监控目录
            String rootDir = "d:\Temp";
            // 轮询间隔 5 秒
            long interval = TimeUnit.SECONDS.toMillis(5);
            // 
            FileAlterationObserver observer = new FileAlterationObserver(
                                                  rootDir, 
                                                  FileFilterUtils.and(
                                                  FileFilterUtils.fileFileFilter(),
                                                  FileFilterUtils.suffixFileFilter(".java")), 
                                                  null);
            observer.addListener(new MyFileListener());
            FileAlterationMonitor monitor = new FileAlterationMonitor(interval,observer);
            // 开始监控
            monitor.start();
        }
    }
    package org.demo.file;
    
    import java.io.File;
    import org.apache.commons.io.monitor.FileAlterationListenerAdaptor;
    
    /**
     * 自定义文件监听器
     * @author  
     * @date    2010-11-16
     * @file    org.demo.file.MyFileListener.java
     */
    public class MyFileListener extends FileAlterationListenerAdaptor{
        @Override
        public void onFileCreate(File file) {
            System.out.println("[新建]:" + file.getAbsolutePath());
        }
        @Override
        public void onFileChange(File file) {
            System.out.println("[修改]:" + file.getAbsolutePath());
        }
        @Override
        public void onFileDelete(File file) {
            System.out.println("[删除]:" + file.getAbsolutePath());
        }
    }
  • 相关阅读:
    Microsoft Exchange Mail Flow Rule
    Microsoft Exchange Inactive mailbox
    Microsoft Exchange In-Place Hold and Litigation Hold
    Microsoft Exchange eDiscovery
    Microsoft Exchange Retention Policy
    JavaScript Array 操作
    CSS选择器优先级
    CSS实现垂直居中
    watch和computed和methods区别是什么?
    什么是async和await? 怎么捕获异常?
  • 原文地址:https://www.cnblogs.com/henuyuxiang/p/7485974.html
Copyright © 2011-2022 走看看