[英]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.