簡體   English   中英

比較2個目錄中的文件

[英]Comparing Files in 2 directories

我有這段代碼告訴我這兩個文件是否具有相同的內容。 但是,我想將此擴展到不僅一個文件,而且擴展到目錄文件。 換句話說,將一個文件夾中的文件與另一個文件夾中的文件進行比較,看它們是否具有相同或不同的內容,如果有,則將其打印出來。

這樣做僅僅是修改目錄路徑的問題嗎? 我的代碼如下。 我想我記得在某處閱讀過,可能需要導入另一個庫。 任何幫助,將不勝感激。

我現在遇到的問題是從相同和不相同的區域中打印出文件名,我嘗試了.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) );
                      }



                    }
                } 
            }
        }
    }
}

嘗試更改:

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

對於:

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

此代碼將遍歷文件夾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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM