【发布时间】:2013-12-08 17:08:02
【问题描述】:
我正在尝试一个监视目录变化的程序。程序必须说:
- 如果文件被删除
- 如果文件被修改
- 如果文件是新的。
为此,我使用两个 ArrayList,在第一个 ArrayList(初始列表)中,我保存了 FilePath 的内容。然后我暂停一下。用户可以从 FilePath 更改某些内容,例如插入新文件,或删除其他文件或修改。当我按下一个键时,我再次将 FilePath 的内容保存在第二个 ArrayList 中。
然后我比较这些项目,这就是问题所在。 怎么比较呢?
我用那个:
for(int i=0; i<initiallist.size(); i++){
for(int j=0; j<finallist.size(); j++){
int compname = initiallist.get(i).getName().compareTo(finallist.get(j).getName());
//If name is the same
if(compname==0){
//If modify date and length is the same
if(initiallist.get(i).getLength()==finallist.get(i).getLength() && initiallist.get(i).getDate()==finallist.get(i).getDate()){
System.out.println("The file: "+initiallist.get(i).getName()+ " --> wasn't modified." );
break;
}else{
System.out.println("The file: "+initiallist.get(i).getName()+ " --> was modified." );
}
}else if(compname!=0){
}else{
}
}
}
我需要一些帮助来获取新文件和已删除文件。谢谢! :)
【问题讨论】:
-
好吧,list2 中但不在 list1 中的每个文件都是新文件,而 list1 中但不在 list2 中的每个文件都已删除;)
标签: java arraylist compare compareto