java 监听指定目录,有没有新增的文件

java 监听指定目录,有没有新增的文件,第1张

在后台,你可以调用java的时候,如果你的java程序调用的Testclass或Testjar的
shell脚本来调用JAVA程序#! / bin / sh的
爪哇的Testclass##或Java的罐子Testjar的
统计=`sqlplus中`
如果[$统计=“”
使用nohup sh的single1sh
壳顺序也按顺序执行,没有回电话当Java是不会继续向下 BR />如果你调用java程序在执行时,命令已经带回来的符号,那么这个命令在后台执行,shell会继续执行下一个命令

java 自定义监听器监听属性变化
import javautilEventObject;
public class MyEvent extends EventObject
{
private Object obj;
private String sName;
public MyEvent(Object source,String sName)
{
super(source);
thisobj=source;
thissName=sName;
}
public Object getObj()
{
return obj;
}
public String getsName()
{
return sName;
}
}
import javautilEventListener;
public interface MyEventListener extends EventListener
{
public void handleEvent (MyEvent me);
}
import javautilIterator;
import javautilVector;
import demoDemoEvent;
public class MyEventSource
{
private Vector list=new Vector();
private String sName = "";
public MyEventSource()
{
super();
}
public void addMyEventListener(MyEventListener me)
{
listadd(me);
}
public void deleteMyEventListener(MyEventListener me)
{
listremove(me);
}
public void notifyMyEvent(MyEvent me)
{
Iterator it=listiterator();
while(ithasNext())
{
((MyEventListener) itnext())handleEvent(me);
}
}
public void setName(String str)
{
boolean bool = false;
if (str == null && sName != null)
bool = true;
else if (str != null && sName == null)
bool = true;
else if (!sNameequals(str))
bool = true;
thissName = str;
// 如果改变则执行事件
if (bool)
notifyMyEvent(new MyEvent(this, sName));
}
public String getsName()
{
return sName;
}
}
public class Test implements MyEventListener
{
public Test()
{
MyEventSource mes = new MyEventSource();
mesaddMyEventListener(this);
messetName("niu");
}
public static void main(String args[])
{
new Test();
}
public void handleEvent(MyEvent me)
{
Systemoutprintln(megetSource());
Systemoutprintln(megetsName());
}
}

我没法给你源码,但可以给你思路:
最简单粗暴的
1 写一个死循环
2 sleep 个 100 毫秒
3 第一次启动建立一个HashMap<File, Date>,扫描所有文件并读取创建日期记录下来(包括子文件夹
4 记录全部文件的数量 fileCount, lastFileCount
5 检查是否数量有变,如果木有就没有新增文件
6 如果有变化,。。。。你懂的,再扫找出不在HashMap里面的就是新增的了
特殊参考
参考tomcat、jboss这类服务器软件如何扫面检测部署文件夹下面文件变动的
高阶
参考防毒软件设计原理,截获系统IO,有对你指定文件夹的Access *** 作时,按需记录

提供你个思路 首先如果纯java遍历文件夹 效率会有些低 并且取不到文件创建时间只能取到最新更新时间 所以你必须只能比对文件目录 也就是存份文件列表 拿最新获取的文件列表和以前的做对比 多数来的就是新增的 ~
获取文件目录结构就别用java遍历了 文件目录复杂还有文件较多效率相对低些
提示你用java调用系统命令 存成文件 就ok~
我想到的就这些 有大神 估计能提供更好的方案!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13388251.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-26
下一篇 2023-07-26

发表评论

登录后才能评论

评论列表(0条)

保存