用JAVA代码实现:
实时侦测指定文件夹中的文件,如果发生变化则提示,或者对文件做一些操作。例如复制或剪切等。
能不能实现?
可以,不过开销会比较大,需要不间断地检查文件夹,以下是个例子,比较简单,需要判断的很多东西都不写了
public void detect() {
List<String> fileNames = new ArrayList<String>();
List<Long> lastModifyTime = new ArrayList<Long>();
while(true) {
try {
File f = new File("D:\detect"); //需要检查的目录
File[] files = f.listFiles();
for(File file : files) {
boolean found = false;
for(String s : fileNames) {
if(s.equals(file.getName()) {
found = true;
if(file.lastModified() != lastModifyTime.get(fileNames.indexOf(s)).longValue()) {
System.out.println(file.getName() + " is modified");
}
break;
}
if(!found) {
System.out.println(file.getName() + " is created");
fileNames.add(file.getName());
lastModifyTime.add(new Long(file.lastModified());
}
}
}
} catch(Exception ex) {
ex.printStackTrace();
}
}
}
public void detect() {
List<String> fileNames = new ArrayList<String>();
List<Long> lastModifyTime = new ArrayList<Long>();
while(true) {
try {
File f = new File("D:\detect"); //需要检查的目录
File[] files = f.listFiles();
for(File file : files) {
boolean found = false;
for(String s : fileNames) {
if(s.equals(file.getName()) {
found = true;
if(file.lastModified() != lastModifyTime.get(fileNames.indexOf(s)).longValue()) {
System.out.println(file.getName() + " is modified");
}
break;
}
if(!found) {
System.out.println(file.getName() + " is created");
fileNames.add(file.getName());
lastModifyTime.add(new Long(file.lastModified());
}
}
}
} catch(Exception ex) {
ex.printStackTrace();
}
}
}
温馨提示:答案为网友推荐,仅供参考