2016-09-16 3 views
2

あるフォルダにファイルがありますが、別のフォルダに移動するだけでなく名前を変更したい(静的な接頭辞の値を追加する)Java - 1つのフォルダから別のフォルダにすべてのファイルを移動して名前を変更

を取得すると、ソースディレクトリのすべてのファイルを一覧表示することに成功しましたが、メソッドが見つかりませんでした。同時に名前を変更して別のフォルダに移動する方法も見つかりません。

誰かが移動して名前を変更するためにgetFilesメソッドで追加する必要があることを教えてもらえますか。

これは私のクラスです。

import java.io.File; 

public class CopyTest { 

    static File mainFolder = new File("F:\\TestCopy"); 
    static File destinationFolder = new File("F:\\TestCopy2"); 
    public String prefix="PREFIX"; 

    public static void main(String[] args) 
    { 
     CopyTest lf = new CopyTest(); 
     lf.getFiles(lf.mainFolder); 

     long fileSize = mainFolder.length(); 

      System.out.println("File size in KB is : " + (double)fileSize/1024); 

    } 
    public void getFiles(File f){ 
     File files[]; 
     if(f.isFile()) 
      System.out.println(f.getAbsolutePath()); 
     else{ 
      files = f.listFiles(); 
      for (int i = 0; i < files.length; i++) { 


       getFiles(files[i]); 

      } 
     } 
    } 
} 

答えて

3

移動と名前の変更にはfile.renameto()を使用できます。

サンプル -

import java.io.File; 

public class MoveFileExample 
{ 
    public static void main(String[] args) 
    { 
     try{ 

      File afile =new File("C:\\folderA\\Afile.txt"); 

      if(afile.renameTo(new File("C:\\folderB\\" + afile.getName()))){ 
      System.out.println("File is moved successful!"); 
      }else{ 
      System.out.println("File is failed to move!"); 
      } 

     }catch(Exception e){ 
      e.printStackTrace(); 
     } 
    } 
} 
+0

を書くことができますが、それは動作しますありがとうございました。 files [i]はrenameToメソッドを使用できます – Dejan

0

あるフォルダから別のフォルダにコピーファイル、ソースファイルを削除し

/** 
* Copy File From One Folder To Another Folder 
* Then Delete File 
* @param sourceFile 
* @param destFile 
* @throws IOException 
*/ 
public static void copyFile(File sourceFile, File destFile) throws IOException { 
    InputStream in = null; 
    OutputStream out = null; 
    try { 
     in = new FileInputStream(sourceFile); 
     out = new FileOutputStream(destFile); 
     byte[] buffer = new byte[1024]; 
     int length; 
     while ((length = in.read(buffer)) > 0) { 
      out.write(buffer, 0, length); 
     } 
    } catch(Exception e){ 
     e.printStackTrace(); 
    } 
    finally 
    { 
     in.close(); 
     out.close(); 
     sourceFile.delete(); 
    } 
} 
1

あなたはこのよう

import java.io.File; 

public class CopyTest 
{ 

static File mainFolder = new File("F:\\TestCopy"); 
static File destinationFolder = new File("F:\\TestCopy2"); 
public String prefix = "PREFIX"; 

public static void main(String str[]) 
{ 
    CopyTest lf = new CopyTest(); 
    lf.getFiles(lf.mainFolder); 

    long fileSize = mainFolder.length(); 

    System.out.println("File size in KB is : " + (double) fileSize/1024); 

} 

public void getFiles(File f) 
{ 
    File files[]; 
    if (f.isFile()) 
    { 
     f.renameTo(new File(destinationFolder + "\\" + prefix + f.getName())); 
    } 
    else 
    { 
     files = f.listFiles(); 
     for (int i = 0; i < files.length; i++) 
     { 

      getFiles(files[i]); 

     } 
    } 
} 

}

関連する問題