`

Jnotify 监听文件夹及文件变化

 
阅读更多

JNotify,一个支持动态监控文件和文件夹(支持级联监控)的架包。在linux系统中,调用的是linux底层的inotify服务,只是添加了对子文件夹级联监控的功能。在windows中,需要添加附件的dll文件,因为windows默认没有该服务。 

使用很简单: 
1,将jnotify包引入到工程中。 
2,将jnotify依赖的so文件加入到java.library.path路径中。这个变量可能会有多个位置,随便将jnotify压缩包中附带的libjnotify.so文件加入到其中的任何一个路径中即可。如果不知道这个变量的值,可以使用System.getProperty("java.library.path")查看。当然,如果不想这么麻烦,可以在启动程序时指定JVM的参数

 

import net.contentobjects.jnotify.JNotify;
import net.contentobjects.jnotify.JNotifyException;
import net.contentobjects.jnotify.JNotifyListener;

/**
 * 测试Jnotify监听文件目录变化
 * @author yongbo.chen
 *
 */
public class TestJnotify {

	public static void main(String[] args) throws JNotifyException, InterruptedException {
		
		// 调用监听方法
		new TestJnotify().simple();
	}

	public void simple() throws JNotifyException, InterruptedException {
		// 监听的目录
		String path = System.getProperty("user.home");
		
		int mask = JNotify.FILE_CREATED | JNotify.FILE_MODIFIED | JNotify.FILE_DELETED | JNotify.FILE_RENAMED;
		
		// 是否监听子目录
		boolean watchSubtree = true;
		
		int watchId = JNotify.addWatch(path, mask, watchSubtree, new JNotifyListener() {
			
			@Override
			public void fileRenamed(int wd, String rootPath, String oldName, String newName) {
				System.out.println("重命名文件:" + rootPath + "/" + newName);
			}
			
			@Override
			public void fileModified(int wd, String rootPath, String name) {
				System.out.println("修改文件:" + rootPath + "/" + name);
			}
			
			@Override
			public void fileDeleted(int wd, String rootPath, String name) {
				System.out.println("删除文件:" + rootPath + "/" + name);
			}
			
			@Override
			public void fileCreated(int wd, String rootPath, String name) {
				System.out.println("创建文件:" + rootPath + "/" + name);
			}
		});
		
		// 移除监听
		Thread.sleep(10000);
		
		JNotify.removeWatch(watchId);
		
	}
}

 

JDK7 里面的 NIO 的WatchService,这个也可以实现监听。只要文件

发生变化,就会产生相应的事件

分享到:
评论

相关推荐

    JNotify监控文件夹及文件变化.zip

    本资料包“JNotify监控文件夹及文件变化.zip”包含了一整套实现这个功能的资源。 首先,让我们深入了解JNotify库。JNotify的核心在于它的跨平台特性,它支持Windows、Linux和Mac OS X操作系统。在Windows环境下,它...

    spring boot文件夹文件监听程序

    在这个"spring boot文件夹文件监听程序"项目中,我们聚焦于利用Spring Boot实现对特定文件夹的监控,并在检测到文件变化时执行相应的操作,比如自动获取遗漏文件。下面将详细介绍这一功能的实现原理和步骤。 首先,...

    监听文件下文件发生变化时复制文件到另一个文件夹

    本案例的标题和描述提到了“监听文件下文件发生变化时复制文件到另一个文件夹”,这通常涉及到文件系统的观察者模式(Observer Pattern)和多线程技术。 首先,我们需要理解“监听文件”这一概念。在操作系统层面,...

    监听文件夹及子文件夹及传送文件

    用fileSystemWatcher 实时监控变化目录以及各目录下变化的文件,并将监控的目录的所有变化写入D盘的log.txt文件中。点击传送文件时,将监控的文件夹中的文件经过文件名和修改时间的比较后传入目标文件夹中。

    监听文件夹内的文件操作C++代码

    在IT领域,尤其是在系统监控和自动化任务中,有时我们需要跟踪文件或文件夹的变化,以便在特定文件被创建、修改或删除时执行相应的操作。本文将详细介绍如何使用C++来监听文件夹内的文件操作,虽然标题提到的是C++,...

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

    Java实现实时监控目录下文件变化的方法 Java实现实时监控目录下文件变化的方法是指通过Java语言来实现实时监控目录下文件的变化情况,包括文件的创建、删除、修改等操作。这种方法可以应用于各种场景,例如文件系统...

    易语言监视文件夹是否被改动

    在易语言中,我们可以使用“事件驱动”编程模型,通过监听文件或文件夹的变化来触发相应的处理程序。 首先,我们需要理解文件监视的基本概念。在操作系统层面,文件系统提供了一种机制,允许应用程序注册对特定文件...

    QFileSystemWatcher 监控文件夹下的文件和文件夹的变化

    注:如果因为目录变更(删除、更改等)引起的该目录内的子文件和子文 件夹的变更(删除改变等)时,操作系统只提供该目录内一级目录下的 文件、文件夹变更的上报信息,若文件夹中包含多级子文件夹以及子文件信息, ...

    FTP自动监听文件夹实现文件上传小程序

    该小程序是基于pyhon编制,可以自动监听指定的本地文件夹,当文件夹内出现新文件时,依据录入的ftp配置地址,实现文件自动上传FTP服务器的作用。该小程序支持同事监听两个本地文件夹,可以传输两个ftp服务器。此外,...

    delphi 实现文件夹内容监控

    总的来说,通过理解Windows API和Delphi的面向对象特性,我们可以构建出强大的文件夹内容监控工具,实时记录并响应文件系统的任何变化。这种能力在软件开发、系统管理、数据分析等多个领域都有其独特的价值。

    java 监听本地文件自动上传服务器

    结合这两个知识点,当文件夹中的文件发生变化时,你可以调用`FileUploader.uploadFile`方法将新文件或修改后的文件上传到服务器。为了实现完全自动化,你可能还需要处理错误和异常,确保在上传过程中保持文件同步的...

    监听目录 文件变化 vbs实现

    本来以为coffee 一次只能监听一个js文件的变化自动编译,实际上是可以监听目录的。。。于是自己写了个vbs脚本,监听某目录下所有coffee文件,如有变化自动编译成js。 原理是无限循环扫描目录,比对coffee文件MD5值...

    java文件监控例子--jnotify

    5. **运行并监听**:启动程序,`jnotify`将开始监听指定路径下的文件系统变化。 6. **取消监听**:如果不再需要监听,可以使用`JNotify.removeWatch`方法移除监听。 ```java JNotify.removeWatch(watchId); ``` ...

    vb.net监控文件夹文件变动

    2. 创建FileSystemWatcher对象:首先,你需要实例化一个FileSystemWatcher对象,并设置其属性,如Path(要监视的文件夹路径)、Filter(要监控的文件类型)和NotifyFilters(要监听的事件类型)。 ```vb.net Dim ...

    试试监听文件夹下的文件修改,通过数据库或URL上传SPC

    标题中的“试试监听文件夹下的文件修改,通过数据库或URL上传SPC”是一个关于文件监控、数据管理和自动化传输的技术概念。这个技术方案的核心是实时监控指定文件夹中的变化,一旦检测到SPC(可能是Statistical ...

    VB6.0 遍历文件夹 & 遍历文件夹里文件 & 拷贝文件.txt

    遍历指定文件夹下的所有文本夹,首先,获取所有的文件夹;其次,从找到的第一个文件开始,循环查找,直到没有文件为止,最后,将文件目录和文件名组合,并存放到数组中

    Java 实现实时监听文件夹是否有新文件增加并上传服务器功能

    在Java中实现实时监听文件夹是否有新文件增加并上传服务器的功能主要涉及到使用Java NIO包中的WatchService接口,以及利用Timer定时任务执行的机制。本文将通过实例代码展示如何结合这两种技术来达到上述功能,并将...

    delphi 监视文件夹改动

    `TFileWatcher`是VCL库的一部分,它简化了文件和文件夹变化的观察过程。而`FindFirstChangeNotification`是Windows API函数,能直接监听文件系统变更事件,更底层,灵活性更高。 2. **组件使用**: - **...

    文件夹监视器 监视指定文件夹的文件变化

    这个特定的“文件夹监视器”是由VS2005(Visual Studio 2005)开发的,它提供了一种直观的方式,帮助用户了解文件系统中的动态变化,尤其是当需要监控特定类型的文件时。 在编程领域,实现这样的功能通常涉及到...

    监控文件夹内的文件的变化(Dir Watcher).

    在IT领域,尤其是在系统管理和软件开发中,实时监控文件或文件夹的变化是一项非常重要的任务。这可以帮助我们跟踪数据的更新、错误的发生或者程序的行为。"Dir Watcher"就是这样一个工具,它专门设计用来监视文件夹...

Global site tag (gtag.js) - Google Analytics