`

java实现文件监控 (转)

 
阅读更多
public class MainFrame extends JFrame {

    private JPanel contentPane;
    private JTextField textField;
    private JTextArea textArea;

    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    MainFrame frame = new MainFrame();
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    public MainFrame() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 543, 300);
        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        setContentPane(contentPane);
        contentPane.setLayout(null);

        JLabel label = new JLabel("监控路径:");
        label.setBounds(33, 20, 65, 15);
        contentPane.add(label);

        textField = new JTextField("D:/");
        textField.setBounds(90, 16, 219, 21);
        contentPane.add(textField);
        textField.setColumns(10);

        JButton button = new JButton("开始监控");
        button.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                try {
                    addWatch();
                } catch (Exception ex) {
                    ex.printStackTrace();
                }
            }
        });
        button.setBounds(319, 16, 93, 23);
        contentPane.add(button);

        textArea = new JTextArea();
        JScrollPane scrollPane = new JScrollPane(textArea);
        scrollPane.setBounds(33, 45, 480, 207);
        contentPane.add(scrollPane);
    }

    public void addWatch() throws Exception {
        String path = textField.getText();
        int mask = JNotify.FILE_CREATED | JNotify.FILE_DELETED
                | JNotify.FILE_MODIFIED | JNotify.FILE_RENAMED;
        boolean watchSubtree = true;
        //添加文件监听
        int watchID = JNotify.addWatch(path, mask, watchSubtree, new Listener());
    }

    class Listener implements JNotifyListener {
        public void fileRenamed(int wd, String rootPath, String oldName,
                String newName) {
            textArea.append("文件:" + rootPath + " : " + oldName + " 重命名为: "
                    + newName + "\n");
        }

        public void fileModified(int wd, String rootPath, String name) {
            textArea.append("文件修改 " + rootPath + " : " + name + "\n");
        }

        public void fileDeleted(int wd, String rootPath, String name) {
            textArea.append("删除文件: " + rootPath + " : " + name + "\n");
        }

        public void fileCreated(int wd, String rootPath, String name) {
            textArea.append("新建文件: " + rootPath + " : " + name + "\n");
        }
    }
}

运行效果:
在D盘新建一个文件和修改文件名操作。

分享到:
评论

相关推荐

    Java实现实时监控目录下文件变化的方法

    通过使用Commons-io的monitor下的相关类,可以实现文件监控,例如文件夹的创建、删除和修改,文件的创建、删除和修改等。 知识点2:采用观察者模式来实现文件监控 观察者模式是一种软件设计模式,通过定义对象之间...

    java实现文件监控小工具

    java实现文件监控小工具 java实现的文件监控小工具,监控文件,新增,修改,删除,重命名。 用于代码审计时监控文件夹内文件的变动,支持Mac,Windows,Linux。 第一次运行时请根据提示在此页面下载对应动态依赖库放...

    java实现,简单文件监控

    以上就是使用Java实现简单文件监控的基本流程。需要注意的是,由于文件系统级别的监控可能涉及到操作系统级别的交互,所以不同操作系统可能有不同的行为和限制。在实际应用中,应考虑到这些差异,并做好异常处理和...

    文件监控文件监控文件监控文件监控

    为了实现文件监控,开发者可能需要以下步骤: 1. 创建一个`WatchService`实例,通常通过调用`FileSystems.getDefault().newWatchService()`。 2. 使用`WatchKey`注册要监控的目录,注册事件包括ENTRY_CREATE、ENTRY_...

    java实现简单远程监控

    在IT行业中,远程监控是一项重要的技术,...总的来说,Java实现远程监控是一个涉及JMX、RMI以及网络编程的综合过程。通过合理设计和实现,我们可以构建出一个强大且灵活的监控解决方案,有效管理和维护我们的Java应用。

    java文件监控例子

    在Java中实现文件监控,可以利用JNotify库,这是一个强大的文件系统变动通知库,支持Windows、Linux和Mac OS X操作系统。标题中的"java文件监控例子"就是关于如何使用JNotify来实现文件监控的示例。 JNotify库的...

    java实现windows文件系统操作监控

    以上就是实现"java实现windows文件系统操作监控"所需的主要知识点,包括系统钩子、JNI、文件系统API、事件处理、文件操作、加密算法、多线程和异常处理等。在实际开发中,需要根据具体需求进行适当的调整和优化,以...

    java实现文件监控.docx

    ### Java 实现文件监控 #### 一、引言 在Java开发中,有时我们需要对文件系统中的文件或目录进行实时监控,例如为了响应文件的创建、删除、修改等事件而采取相应的动作。Java本身并不直接支持这样的功能,但是可以...

    JAVA实时屏幕监控

    描述中提到的“博文链接:https://jarg.iteye.com/blog/1504195”,虽然没有提供具体的描述内容,但我们可以推测这可能是一个ITeye上的博客文章,详细讨论了如何使用Java实现屏幕监控的原理和步骤。这个链接可能是...

    Java实现本机屏幕监控+源码

    总结来说,Java实现本机屏幕监控的核心在于使用`java.awt.Robot`类捕获屏幕,结合定时器或线程机制实现定时捕获,以及可能的网络传输技术实现实时展示。通过这些技术,我们可以构建出高效且功能完善的屏幕监控系统。...

    java编写的ftp文件实时监控下载上传

    用java语言编写的ftp小工具,可以按指定时间监控ftp服务器,把服务器指定目录内新产生的文件或者文件夹下载到本地指定文件夹,下载后删除数据。 也可以监控本地文件夹,把文件夹内新产生的文件或者文件夹整体上传到...

    纯java代码实现各种视频转flv格式,支持在线播放。

    在IT行业中,视频编码与转换是一项关键的技术,尤其是在多媒体内容分发和服务...为了详细了解和学习这个纯Java实现,建议解压后仔细研究其中的文件,理解代码逻辑和工作流程,以便进一步应用或改进这个视频转码工具。

    基于java的文件监控程序设计与实现.pdf

    本文介绍的基于Java的文件监控程序,它通过桌面式程序的方式实现,主要监控Windows系统下的文件目录变化,并提供对文件信息的采集和修改操作。 在讨论其设计和实现之前,有必要了解几个核心概念:文件处理、Java...

    Java 文件监控,实时监控文件加载

    本篇文章将深入探讨如何在Java中实现文件监控,并结合提供的资源进行详细解析。 首先,Java标准库提供了`java.nio.file`包中的`WatchService`接口,它是文件系统事件监控的基础。通过注册感兴趣的目录到`...

    java实现rtsp/rtmp转m3u8/flv/hls/mp4等实现web直播和回放

    综上所述,这个Java实现涉及的技术栈主要包括Java编程、FFmpeg处理、Nginx服务器配置以及Web前端的M3U8播放。通过这样的架构,可以实现从RTSP/RTMP源获取视频流,将其转化为适应Web的M3U8、FLV、HLS或MP4格式,同时...

    javacv实现rtsp转flv用于网页前端播放验证可用

    在IT行业中,流媒体传输和视频播放是至关重要的部分,特别是在监控系统和网络摄像机二次开发的场景下。本文将详细讲解如何使用JavaCV库将RTSP流转换为FLV格式,以便在网页前端进行播放,并验证了这种方法的可行性。 ...

    基于JAVA网络远程监控系统软件的实现(源码)

    源码中应该包含了这些模块的具体实现,包括但不限于Java类、接口、配置文件以及可能的数据库脚本。通过阅读源码,可以学习到如何使用Java进行网络编程、多线程编程、数据处理和可视化、异常处理等方面的知识。对于想...

    java实现多线程文件传输

    本篇文章将深入探讨如何使用Java实现多线程文件传输,并涵盖以下几个关键知识点: 1. **线程基础**:在Java中,线程是程序执行的基本单元,可以通过实现`Runnable`接口或继承`Thread`类来创建。`Runnable`接口更...

    Java实现文件监控器FileMonitor的实例代码

    Java实现文件监控器FileMonitor的实例代码 Java实现文件监控器FileMonitor的实例代码是一种基于Java语言的文件监控机制,能够实时监控文件的变化,包括文件的创建、修改、删除等操作。该机制可以应用于各种文件系统...

    java写的ftp下载上传定时监控

    Java作为多平台支持的编程语言,提供了丰富的库和工具来实现FTP功能,包括下载、上传文件以及定时监控等操作。本篇文章将深入探讨如何使用Java进行FTP文件传输,并涉及自动解压和压缩的功能。 首先,让我们关注Java...

Global site tag (gtag.js) - Google Analytics