2011-04-22 85 views
1

您好我正在一個簡單的程序和程序的設置我需要程序檢查一個目錄中的zip文件和任何zip文件需要被移動到另一個夾。Java移動文件與某些文件擴展名

可以說我有文件夾1,它包含6個zip文件,然後我呼籲文件夾2,我需要所有的拉鍊,僅在文件夾1的拉鍊的另一個文件夾移動到文件夾2

謝謝你的任何幫助,一個這個問題。

順便說一句我是一個小白所以任何代碼樣本,將不勝感激

回答

2

對於每個文件在folder1,使用String#endsWith()以查看是否該文件名與".zip"結束。如果是,請將其移至folder2FilenameFilter提供了一個很好的方法來做到這一點(儘管這不是絕對必要的)。

它看起來像這樣(未測試):

File f1 = new File("/path/to/folder1"); 
File f2 = new File("/path/to/folder2"); 

FilenameFilter filter = new FilenameFilter() 
{ 
    @Override public boolean accept(File dir, String name) 
    { 
     return name.endsWith(".zip"); 
    } 
}; 

for (File f : f1.listFiles(filter)) 
{ 
    // TODO move to folder2 
} 
1

匹配的文件系統中的「* .ZIP」的模式被稱爲「文件通配符。」您可以使用以下文檔輕鬆選擇所有這些文件:「.zip」file glob: Finding Files。 java.nio.file.PathMatcher是你想要的。或者,您可以按照正常的方式列出目錄,並使用該文件的名稱以及String的「.endsWith()」方法,該方法將執行類似的操作。

+0

+1提供NIO備選方案 – jathanasiou 2013-08-26 15:09:48

0

名單基本目錄的所有文件,如果它與 '.ZIP' 結束它移動到DESTDIR

// baseDir = folder1 
    // destDir = folder2 

    File[] files = baseDir.listFiles(); 
    for (int i=0; i<files.length; i++){ 
     if (files[i].endsWith(".zip")){ 
      files[i].renameTo(new File(destDir, files[i].getName())); 
     } 
    } 

API renameTo

0

使用FilenameFilter

String pathToDir = "/some/directory/path"; 
File myDir = new File(pathToDir); 
File[] zipFiles = myDir.listFiles(new FilenameFilter() { 

    public boolean accept(File dir, String name) { 
    return name.endsWith(".zip") 
    } 
}); 
0

我的解決方案:

import java.io.*; 
import javax.swing.*; 
public class MovingFile 
{ 
    public static void copyStreamToFile() throws IOException 
    { 
     FileOutputStream foutOutput = null; 
     String oldDir = "F:/CAF_UPLOAD_04052011.TXT.zip"; 
     System.out.println(oldDir); 
     String newDir = "F:/New/CAF_UPLOAD_04052011.TXT.zip.zip"; // name the file in destination 

     File f = new File(oldDir);    
     f.renameTo(new File(newDir)); 
    } 
    public static void main(String[] args) throws IOException 
    { 
     copyStreamToFile(); 
    } 
}