2017-05-26 16 views
-2

ある場所から別の場所にファイルをコピーしようとしています。私たちは成功しました。ある場所から別の場所にファイルを移動します。しかし、特定のファイルだけを別の場所に動的にコピーしたい。Javaを使用してある場所から別の場所にファイルを動的にコピーする方法

import java.io.File; 

public class fileTranfer { 

    public static void main(String[] args) { 
      File sourceFolder = new File("C:/offcial/BPM/Veriflow"); 
      File destinationFolder = new File("C:/offcial/BPM/Veriflow2"); 

      if (!destinationFolder.exists()) 
      { 
       destinationFolder.mkdirs(); 
      } 

      // Check weather source exists and it is folder. 
      if (sourceFolder.exists() && sourceFolder.isDirectory()) 
      { 
       // Get list of the files and iterate over them 
       File[] listOfFiles = sourceFolder.listFiles(); 

       if (listOfFiles != null) 
       { 
        for (File child : listOfFiles) 
        { 
         // Move files to destination folder 
         child.renameTo(new File(destinationFolder + "\\" + child.getName())); 
        } 

       } 
       System.out.println(destinationFolder + " files transfered."); 
      } 
      else 
      { 
       System.out.println(sourceFolder + " Folder does not exists"); 
      } 

    } 

} 

いずれかのサンプルを持っている場合は

+1

FilenameFilterについて読むしかし、あなたの質問は非常に不明です – Jens

答えて

0

チェックアウトApache Commons IO ...私に提供してください。

FileUtilsには、ファイルとディレクトリの等価性とコピーをチェックするためのかなり良いユーティリティメソッドがあります。

全体libにはやり過ぎちょうどFileUtils-Class via grepcodeに見てみるべきである場合:)

+0

ファイルを少しだけ過度にコピーするためのライブラリをダウンロードしないでしょうか? – Dolf

+0

おそらく、彼らがやりたいことを扱うファイルの量に依存します。彼はそれが過度であると判断すると、[FileUtils-Class via grepcode](http://grepcode.com/file/repo1.maven.org/maven2/commons-io/commons-io/2.4)を調べることができます/org/apache/commons/io/FileUtils.java/):) – aexellent

1

私がバッファに最初のファイルの内容を読み、バイト[]バッファを作成します。 2番目のファイルを新規に作成し、必要なパスを指定してバッファリングされたデータを新しいファイルにスローします。

private static void copyFileUsingStream(File source, File dest) throws IOException { 
    InputStream is = null; 
    OutputStream os = null; 
    try { 
     is = new FileInputStream(source); 
     os = new FileOutputStream(dest); 
     byte[] buffer = new byte[1024]; 
     int length; 
     while ((length = is.read(buffer)) > 0) { 
      os.write(buffer, 0, length); 
     } 
    } finally { 
     is.close(); 
     os.close(); 
    } 
} 

EDIT:宿題はbufferというバイト配列のサイズにする必要があります。 1024が標準ですが、値を調整することができます!

関連する問題