gpt4 book ai didi

java - Apache Commons IO 文件监控捕获子文件夹中的事件

转载 作者:太空宇宙 更新时间:2023-11-04 14:12:00 27 4
gpt4 key购买 nike

我使用以下代码来捕获给定文件夹中的事件。它工作正常,但我的问题是如何捕获给定文件夹中子文件夹中的事件?

  import java.io.File;
import java.io.IOException;

import org.apache.commons.io.monitor.FileAlterationListener;
import org.apache.commons.io.monitor.FileAlterationListenerAdaptor;
import org.apache.commons.io.monitor.FileAlterationMonitor;
import org.apache.commons.io.monitor.FileAlterationObserver;

public class Monitor {

public Monitor() {

}

//path to a folder you are monitoring .

public static final String FOLDER = MYPATH;


public static void main(String[] args) throws Exception {
System.out.println("monitoring started");
// The monitor will perform polling on the folder every 5 seconds
final long pollingInterval = 5 * 1000;

File folder = new File(FOLDER);

if (!folder.exists()) {
// Test to see if monitored folder exists
throw new RuntimeException("Directory not found: " + FOLDER);
}

FileAlterationObserver observer = new FileAlterationObserver(folder);
FileAlterationMonitor monitor =
new FileAlterationMonitor(pollingInterval);
FileAlterationListener listener = new FileAlterationListenerAdaptor() {
// Is triggered when a file is created in the monitored folder
@Override
public void onFileCreate(File file) {

// "file" is the reference to the newly created file
System.out.println("File created: "+ file.getCanonicalPath());


}

// Is triggered when a file is deleted from the monitored folder
@Override
public void onFileDelete(File file) {
try {
// "file" is the reference to the removed file
System.out.println("File removed: "+ file.getCanonicalPath());
// "file" does not exists anymore in the location
System.out.println("File still exists in location: "+ file.exists());
} catch (IOException e) {
e.printStackTrace(System.err);
}
}
};

observer.addListener(listener);
monitor.addObserver(observer);
monitor.start();
}
}

我读过这里enter link description here该代码应该也捕获子文件夹中的事件,但我不起作用。

最佳答案

您对代码后的超链接所做的声明不准确。 Capture events happening inside a directory中的代码确实捕获主/根目录和子文件夹中的某些事件(文件创建、文件删除)。它不监视文件修改文件夹操作(创建、删除、重命名等)。

我刚刚在 3 层以下(嵌套子文件夹)上对其进行了测试。因此,您所指的代码可以完成您所要求的任务。如果您需要不同的内容,请重新措辞/重新措辞您的问题。

如果您需要有关该主题的更多信息,您可以找到此链接:https://commons.apache.org/proper/commons-io/apidocs/org/apache/commons/io/monitor/FileAlterationListenerAdaptor.html有用。这绝对对我有帮助。

关于java - Apache Commons IO 文件监控捕获子文件夹中的事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28210997/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com