比较2个目录中的文件

时间:2017-07-05 19:28:43

标签: java

我有这段代码告诉我2个文件是否具有相同的内容。但是,我想将其扩展到一个文件而不是目录文件。换句话说,将一个文件夹中的文件与另一个文件夹中的文件进行比较,以查看它们是否具有相同或不同的内容,如果是,则打印出来

这样做只是修改目录路径吗?我的代码如下。我想我记得在某个地方读书,我可能需要导入另一个库。任何帮助将不胜感激。

我现在遇到的问题是从相同的区域打印出文件名,并且我尝试了不同的.getName它不起作用我的结果回来了(true)(而不是名字)满足条件的文件

以下代码

import java.io.File;

public class F2FCompare {

 public static void main(String[] args) 
    {    
     File folderA = new File("C:/Users/hoflerj/Desktop/FolderA");
     File[] listOfFilesInA = folderA.listFiles();

     File folderB = new File("/C:/Users/hoflerj/Desktop/FolderB");
     File[] listOfFilesInB = folderB.listFiles();   

     for (File fileA : listOfFilesInA){
         if (fileA.isFile()) 
         {
             for (File fileB : listOfFilesInB) {
                  if(fileB.isFile()) 
                    {
                      if ( fileA.equals(fileB)) 
                      {
                          System.out.println( "FolderA same as FolderB" + listOfFilesInA.equals(listOfFilesInB) );
                          //File[] files = folder.listFiles(); 
                      }

                     // txtfile.getName()
                      else  
                      {
                          //System.out.println(! fileA.getName().equals(fileB) + "    Folder A diff B" );
                          System.out.println( "Folder same as FolderB  " + !fileA.getName().equals(fileB) );
                      }



                    }
                } 
            }
        }
    }
}

2 个答案:

答案 0 :(得分:1)

尝试更改:

<xsl:sequence select="/node1/node2"/>

有:

if(line1 == null || line2 == null)

答案 1 :(得分:1)

此代码将遍历文件夹A中的每个文件,并将其与文件夹B中的每个文件进行比较。

File folderA = new File("/Users/you/folderA/");
File[] listOfFilesInA = folderA.listFiles();
File folderB = new File("/Users/you/folderB/");
File[] listOfFilesInB = folderB.listFiles();    
for (File fileA : listOfFilesInA) {
    if (fileA.isFile()) 
    {
        for (File fileB : listOfFilesInB) {
             if(fileB.isFile()) 
             {
                //your code 
             }
         } 
    }
}

David Robles的致谢:https://stackoverflow.com/a/1844695/4788664