首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java watchservice,如何找到创建文件的目录?

Java WatchService 是 Java NIO 包中的一个类,用于监视文件系统的变化。当文件或目录在指定的路径下发生变化时,WatchService 可以检测到并触发相应的事件。

要找到创建文件的目录,可以通过以下步骤实现:

  1. 创建 WatchService 对象并注册要监视的路径:
代码语言:txt
复制
Path directory = Paths.get("要监视的路径");
WatchService watchService = FileSystems.getDefault().newWatchService();
directory.register(watchService, StandardWatchEventKinds.ENTRY_CREATE);
  1. 启动一个无限循环来监听事件:
代码语言:txt
复制
while (true) {
    WatchKey key;
    try {
        key = watchService.take();
    } catch (InterruptedException e) {
        e.printStackTrace();
        return;
    }
    
    for (WatchEvent<?> event : key.pollEvents()) {
        WatchEvent.Kind<?> kind = event.kind();
        
        // 处理创建文件事件
        if (kind == StandardWatchEventKinds.ENTRY_CREATE) {
            Path createdFile = (Path) event.context();
            Path parentDirectory = directory.resolve(createdFile).getParent();
            System.out.println("文件创建:" + parentDirectory);
        }
    }
    
    boolean valid = key.reset();
    if (!valid) {
        break;
    }
}
  1. 在事件处理中,使用 event.context() 获取创建的文件名,然后使用 directory.resolve(createdFile).getParent() 获取文件的父目录路径。

这样,当有文件在指定的路径下被创建时,会打印出文件所在的目录路径。

对于 Java WatchService 的更多信息和使用示例,可以参考腾讯云对象存储 COS 的文档: Java WatchService 监听文件变化

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

idea创建工程目录_idea创建java文件

我使用java 8 首先在自己d盘下建一个文件夹,用来存放我们待会新建项目,我创建了ideaproject: 1,第一步打开idea 2,第二步选择创建java项目,并选择自己jdk(我自己本地已经配置了所以有...),没有可以点击new去自己安装目录下找,一般默认安装c:\program files\java,然后选择next 下一步 3,第三步将“create project from template”前面的勾去掉...,然后点击“next” 4,第四步,选择项目存放目录 5,第五步,创建项目名字,点击finish 完成 6,第六步出现弹窗点击ok就可以了 项目创建完成,点击项目名打开src,目录结构如下,我们只要注意这些地方就可以了...右击src选择new->package 我取名字叫com.java.demo,点击ok,创建完成 下面我们在新创建目录下新建一个class,选中com.java.demo右击->new->java...总结 到此这篇关于使用idea创建java项目的步骤详解(hello word)文章就介绍到这了,更多相关idea 创建java项目内容请搜索萬仟网以前文章或继续浏览下面的相关文章希望大家以后多多支持萬仟网

1.5K20

如何找到被删除文件

但有的时候,会出现怎么也查不到大文件情况,通过 du 查找时候,统计出来大小,跟 df 显示占用空间对应不上。...这种情况,由于进程没有退出,因此文件占用空间并不会释放;直到进程退出,磁盘空间才会真正释放。 ** 问题1:如何找到是哪个进程打开了该文件呢?...** linux上,由于进程仍然存活,因此可以通过查看所有进程打开fd,如果该文件已经被删除,则查看时,会显示(deleted)。...zerotier-one zerotier-one 64 Aug 21 00:19 /proc/29400/fd/11 -> /tmp/ibG68kpG\ (deleted) ** 问题2:如何避免这种情况...** 不要直接删除该文件,而是通过将文件 truncate 方式,释放磁盘空间。 一种方式是: cat /dev/null > ${filename} 或者(新get!)

2.3K00

eclipse 创建java文件_如何使用eclipse创建一个java文件

1:如何使用eclipse创建一个java文件 第一步:创建一个java项目 file——>new–>java project 第二步:创建一个package 选中项目右键,选择:new–>package...规则,必须符合标识符规则。 作用:用于管理class类(java文件),一个包中不能有同名class。...快速删除一行快捷键:ctrl + d 快速复制一行快捷键:ctrl + alt + 向下箭头 3.如何运行eclipse中程序???...方式一:点击“工具栏”中“运行按钮” 方式二:鼠标在代码编辑区右键,然后选中:run As –> java application 在eclipse中,每完成一行代码就会执行编译操作,编译之后字节码文件就放...源文件位置:java项目的bin目录中。 字节码文件位置:java项目的bin目录中。 在不知道工作空间路径时候,如何查看一个源文件所在位置???

2.9K30

java 删除目录下所有文件_Java删除文件目录目录下所有文件方法实例

大家好,又见面了,我是你们朋友全栈君。 前言 本文主要实现功能是删除某个目录目录所有子目录文件,涉及到知识点:File.delete()用于删除“某个文件或者空目录”!...所以要删除某个目录及其中所有文件和子目录,要进行递归删除。...具体代码示例如下: import java.io.File; public class DeleteDirectory { /** * 删除空目录 * @param dir 将要删除目录路径 */...” + dir); } else { System.out.println(“Failed to delete empty directory: ” + dir); } } /** * 递归删除目录所有文件及子目录下所有文件...* @param dir 将要删除文件目录 * @return boolean Returns “true” if all deletions were successful. * If a deletion

3.4K30

优雅操作文件java.nio.file 库介绍

Files 文件 java.nio.file.Files 类是 Java NIO 文件包中一个实用工具类,它提供了一系列静态方法,可以让你方便地执行文件系统中各种操作,例如文件创建、删除、复制、移动...: 以上代码示例展示了如何使用 Files 类进行常见文件操作。...创建,主要用于监控文件系统事件(如创建、修改、删除文件目录)。...可以帮助我们找到符合特定规则文件目录 目录监控:可以结合 WatchService目录监控,然后通过 PathMatcher 过滤找出我们想要文件,如:.log 文件创建,修改等 以下是一个简单示例代码...读文件内容 上面的示例都是操作文件目录,这里介绍一下如何文件内容,为了方便演示读取文件,先在 path/to/file.txt 相对目录创建一个示例文本: Java is a high-level

24810

Yii2 FileHelper::findFiles() 返回在指定目录和子目录找到文件

findFiles() 公共 静态 方法 返回在指定目录和子目录找到文件 public static array findFiles($dir, $options = []) 官方参数说明请查看 返回在指定目录和子目录找到文件...\files\demo.txt" [1]=> string(23) "uploads\images\demo.jpg" } 当我们只传递第一个参数(路径)情况下,会发现返回是整个目录所有文件...string(23) "uploads\images\demo.jpg" } 当我们想要查找 uploads 目录下所有以 .jpg 结尾文件时,第二个参数传递 ['only'=>['*.jpg...=> string(22) "uploads\files\demo.txt" } 当我们想要排除 uploads 目录下所有以 .jpg 结尾文件时,第二个参数传递 ['except'=>['*...注:uploads目录在web目录下,和index.php入口文件同级。 ​

79230

WPF 如何找到资源文件路径包含 # 号文件

本文告诉大家如何在 WPF 获取资源文件包含 # 号文件资源 我遇到一个有意思设计师小伙伴,他文件命名喜欢使用 #数字 方式命名,例如写一个图片文件,他命名是 Image#1.png 和 Image...Height="200" Stretch="Fill" Source="lindexidoubi.png" /> 以上代码需要在解决方案里面放一个 lindexidoubi.png 文件...200" Height="200" Stretch="Fill" Source="lindexi%23doubi.png" /> 于是我就不用和设计师打起来了 在 WPF 中是支持资源文件路径名包含了...欢迎访问 可以通过如下方式获取本文源代码,先创建一个空文件夹,接着使用命令行 cd 命令进入此空文件夹,在命令行里面输入以下代码,即可获取到本文代码 git init git remote add.../lindexi/lindexi_gd.git 获取代码之后,进入 CarqawlawyofuwairfuJalbeewhaidearheebee 文件夹 本文会经常更新,请阅读原文:

1.4K20

Java文件文件创建,写文件

前言 大家好,我是 Vic,今天给大家带来Java文件文件创建,写文件概述,希望你们喜欢 ?..."); }catch(IOException e){ e.printStackTrace(); } } 文件创建 public class FileDemo{ public static...boolean exits() boolean isFile() boolean isDirectory() boolean isHidden() 相关知识与技术 boolean mkdir():创建目录...,若成功返回true boolean createNewFile():创建一个文件 boolean delete():删除一个文件 Java中流分类 流运动方向:分为输入流和输出流两种 流数据类型...❤️ 总结 本文讲了Java文件文件创建,写文件,如果您还有更好地理解,欢迎沟通 定位:分享 Android&Java知识点,有兴趣可以继续关注

1.9K30

IntelliJ IDEA 如何创建一个普通 Java 项目,及创建 Java 文件并运行

IDEA 教程:IntelliJ-IDEA-Tutorial 关于 Java 更多学习可以关注下面几个 Github 仓库,主要包括 Java 学习笔记、开发中遇到问题与解决方案、数据结构与算法学习等...一、创建 Java 项目: 1、打开 IDEA 软件,点击界面上 Create New Project 2、出现以下界面,选中 Java,然后选择 JDK,最后点击 Next,进行下一步(...我是 jdk1.8) 3、这里是选择生成项目时是否创建 Java 文件,勾选上 Java Hello World 后会生成一个默认 Hello world 文件,点击 Next 进行下一步, 4...、给项目命名,默认是 untiled,自己填个名字吧,最后点击 finish 5、项目创建完成 二、创建 Java 文件: 1、点击 src——>new——>package,创建一个文件包...,并给包命名,与 Eclipse 包类似; 给包命名 2、在包下面创建 Java文件,点击包名——>New——>Java Class; 给类文件命名 4、运行 Java 文件,点击 Run

1.9K10

太极限了,JDK这个BUG都能被我踩到!

,就重新加载配置,画个架构图大概是这样: 今天重点是文件变更该如何监听(watch),我们当时实现非常简单: 单独起个线程,定时去获取文件最后更新时间戳(毫秒级) 记录每个文件最后更新时间戳...这也能被我们碰到,真是有点极限~ WatchService—JDK内置文件变更监听 当了解到之前实现存在BUG后,我就去搜了一下Java如何监听文件变更,果然被我找到WatchService。...说是WatchService可以监听一个目录,对目录文件新增、变更、删除进行监听。...记得上次这么蛋疼还是在折腾Javaunix domain socket,也是找到了一个google库,测试没问题,放到线上就崩了~不得不说google还是厉害,JDK提供不了库,我们来提供~ 于是我带着这个疑问去问了一个搞...故障是如何修复? 再次回到开头故障,我们是如何修复呢?

16510

如何Java创建临时文件

Java程序中,有时需要创建临时文件来暂存数据或者执行某些操作。Java提供了许多方式来创建临时文件。在本教程中,我们将介绍如何使用Java标准库来创建临时文件。...如果您需要在指定目录创建临时文件,可以将目录路径作为第一个参数传递给createTempFile()方法。...如果您需要在指定目录创建临时文件,可以将目录路径作为第一个参数传递给createTempFile()方法。...在本教程中,我们介绍了使用Java标准库中File.createTempFile()和Java 7及更高版本中Files.createTempFile()方法来创建临时文件,以及如何使用try-with-resources...同时,我们还演示了如何删除临时文件。如果您想了解更多关于Java文件处理信息,请参阅Java官方文档。

1.6K00

格式化盘要如何找到文件

格式化是很常见数据恢复案例故障,如果被格式化盘是有重要资料,那么一定要注意马上停止往这个盘写入文件。然后用数据恢复软件扫描恢复里面的数据。具体恢复方法可以看下文了解。...图片工具/软件:WishRecy步骤1:软件运行后,右击需要恢复盘选择完全扫描(不要直接点开始恢复,默认是快速扫描,格式化盘需要完全扫描数据才完整)。...步骤2:等程序扫描完成就会看到需要恢复文件名了。步骤3:勾选所有需要恢复资料,接着点右上角保存,《另存为》按钮,将勾选文件复制出来。步骤4:最后一步只需要等程序将数据COPY完毕就好了 。...注意事项1:想要恢复H盘格式化需要注意,一定要先恢复数据后,才能往这个盘存入文件。注意事项2:格式化恢复出来数据需要暂时保存到其它盘里。

87540

太极限了,JDK这个BUG都能被我踩到

,就重新加载配置,画个架构图大概是这样: [p1.png] 今天重点是文件变更该如何监听(watch),我们当时实现非常简单: 单独起个线程,定时去获取文件最后更新时间戳(毫秒级) 记录每个文件最后更新时间戳...这也能被我们碰到,真是有点极限~ WatchService—JDK内置文件变更监听 当了解到之前实现存在BUG后,我就去搜了一下Java如何监听文件变更,果然被我找到WatchService。...[p5.png] 说是WatchService可以监听一个目录,对目录文件新增、变更、删除进行监听。...记得上次这么蛋疼还是在折腾Javaunix domain socket,也是找到了一个google库,测试没问题,放到线上就崩了~不得不说google还是厉害,JDK提供不了库,我们来提供~ [p14...故障是如何修复? 再次回到开头故障,我们是如何修复呢?

40941

JAVA 文件监控 WatchService

概述 java1.7中 提供了WatchService来监控系统中文件变化。...该监控是基于操作系统文件系统监控器,可以监控系统是所有文件变化,这种监控是无需遍历、无需比较,是一种基于信号收发监控,因此效率一定是最高;现在Java对其进行了包装,可以直接在Java程序中使用...场景二:监控磁盘中文件变化,一般需要把磁盘中所有文件全部加载一边,定期轮询一遍磁盘,跟上次文件状态对比。如果文件目录过多,每次遍历时间都很长,而且还不是实时监控。...Path.register() 方法注册要监控指定目录那些事件(创建、修改、删除) StandardWatchEventKinds.ENTRY_CREATE //创建 StandardWatchEventKinds.ENTRY_MODIFY...//修改 StandardWatchEventKinds.ENTRY_DELETE //删除 调用watchService.take(); 获取监控目录文件变化WatchKey。

2.8K121

php创建多级目录与级联删除文件方法示例

本文实例讲述了php创建多级目录与级联删除文件方法。分享给大家供大家参考,具体如下: 创建多级目录 mkdir函数只能创建一级目录,如果我们想创建多级目录,则需要自己编写函数。 <?....= "/"; } } mkdir_p($path); 级联删除文件 我们知道PHP中rmdir函数只能删除空文件夹,unlink只能用来删除文件。 我们可以自己编写函数,级联删除非空文件夹。...continue; if($type=="file"){ //如果类型为文件,则删除之 unlink($path."/"....$file); } } closedir($handle); rmdir($path); } rmdir_r($path); 更多关于PHP相关内容感兴趣读者可查看本站专题:《php...文件操作总结》、《PHP目录操作技巧汇总》、《PHP常用遍历算法与技巧总结》、《PHP数据结构与算法教程》、《php程序设计算法总结》及《PHP网络编程技巧总结》 希望本文所述对大家PHP程序设计有所帮助

3K31

antd 如何在 src目录下 引入 Public 目录文件

antd 如何在 是src目录下 引入 Public 目录文件 首先 需要用到这两个Hook函数及一个https请求库 咱们先来了解一下 useMemo  import React, { useMemo...} from 'react'; useMemo 和 useCallback两者区别: useMemo 计算结果是 return 回来值, 主要用于 缓存计算结果值 ,应用场景如: 需要 计算状态...useCallback 计算结果是 函数, 主要用于 缓存函数,应用场景如: 需要缓存函数,因为函数式组件每次任何一个 state 变化 整个组件 都会被重新刷新,一些函数是没有必要被重新刷新,...doc] = usePromise(useMemo(() => axios.get('PcdConstants.json'), [])); 其中 PcdConstants.json 是 public 目录文件

2.8K30
领券