用java编写 启动一个线程,每隔一秒扫描一个指定的文件夹,监听文件是删除操作还是新建操作,(本
答案:1 悬赏:10 手机版
解决时间 2021-04-04 03:09
- 提问者网友:像風在裏
- 2021-04-03 17:06
用java编写 启动一个线程,每隔一秒扫描一个指定的文件夹,监听文件是删除操作还是新建操作,(本
最佳答案
- 五星知识达人网友:笑迎怀羞
- 2021-04-03 18:11
程序写起来倒是不难 不过有个问题瑶瑶弄清楚,如果重命名不考虑的话:
如果该文件夹下原来有5个文件我新增了两个,删除了一个,按照你的说法是新增了1个,这种情况不用考虑吗?
恢复了 马上给你实现
追问:嗯嗯,不用考虑,
追答:package test;
import java.io.File;
public class FileListener {
public static void main(String[] args) {
String path = "e:/test";
Thread listener = new Thread(new FileListenerThread(path));
listener.start();
}
}
class FileListenerThread implements Runnable{
private String path;
@Override
public void run() {
//需要监听的文件夹
File file = new File(path);
//原始文件中的文件数量
int orginalSize = file.list().length;
while(true){
int size = file.list().length;
if(size > orginalSize){
System.out.println("文件新增,数量为: "+(size-orginalSize));
orginalSize = size;
}
else if(size < orginalSize){
System.out.println("文件删除,数量为: "+(orginalSize-size));
orginalSize = size;
}
try {
//睡1秒
Thread.sleep(3000);
} catch (InterruptedException e) {
}
}
}
public void setPath(String path) {
this.path = path;
}
public FileListenerThread(String path){
this.path= path;
}
}
//上面的代码我已经跑通了,你要修改成你本地的package,代码指定你本机的一个文件夹,路径写错了会跑异常的
如果该文件夹下原来有5个文件我新增了两个,删除了一个,按照你的说法是新增了1个,这种情况不用考虑吗?
恢复了 马上给你实现
追问:嗯嗯,不用考虑,
追答:package test;
import java.io.File;
public class FileListener {
public static void main(String[] args) {
String path = "e:/test";
Thread listener = new Thread(new FileListenerThread(path));
listener.start();
}
}
class FileListenerThread implements Runnable{
private String path;
@Override
public void run() {
//需要监听的文件夹
File file = new File(path);
//原始文件中的文件数量
int orginalSize = file.list().length;
while(true){
int size = file.list().length;
if(size > orginalSize){
System.out.println("文件新增,数量为: "+(size-orginalSize));
orginalSize = size;
}
else if(size < orginalSize){
System.out.println("文件删除,数量为: "+(orginalSize-size));
orginalSize = size;
}
try {
//睡1秒
Thread.sleep(3000);
} catch (InterruptedException e) {
}
}
}
public void setPath(String path) {
this.path = path;
}
public FileListenerThread(String path){
this.path= path;
}
}
//上面的代码我已经跑通了,你要修改成你本地的package,代码指定你本机的一个文件夹,路径写错了会跑异常的
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯