【问题标题】:Saving changes of folder on Java ArrayLists在 Java ArrayLists 上保存文件夹的更改
【发布时间】:2013-12-08 17:08:02
【问题描述】:

我正在尝试一个监视目录变化的程序。程序必须说:

  1. 如果文件被删除
  2. 如果文件被修改
  3. 如果文件是新的。

为此,我使用两个 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{

            }
        }
    }

我需要一些帮助来获取新文件和已删除文件。谢谢! :)

【问题讨论】:

标签: java arraylist compare compareto


【解决方案1】:

== 比较仅适用于原始类型。为了比较对象,例如 Date 对象,您必须使用 equals() 或 compareTo()

== 比较两个对象的 ADDRESS,而不是对象的实际 VALUES。

if(date1.equals(date2))
    //do something

if(date1.compareTo(date2) == 0)
    //do something

【讨论】:

    【解决方案2】:

    要在 java 中比较对象,请使用 .equals() 方法而不是 "==" 运算符

    改变

    initiallist.get(i).getDate()==finallist.get(i).getDate()
    

    initiallist.get(i).getDate().equals(finallist.get(i).getDate())
    

    【讨论】:

      【解决方案3】:

      如果您使用的是 Java 7,您还可以使用内置支持来监控文件系统

      Monitor File System with WatchService

      它会为你节省很多额外的工作。

      【讨论】:

      • 是的,我正在尝试使用 Monitor File System,但是,我正在使用 ArraLists 进行一些练习,使用 ArrayLists 进行尝试非常有趣。感谢您的信息:)
      猜你喜欢
      • 2021-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多