2016-09-16 4 views
2

Ich habe Dateien in einem Ordner, ich möchte sie in den anderen Ordner aber auch verschieben und umbenennen (mit einigen statischen Präfix Wert, der hinzugefügt werden sollte)Java - Verschieben und Umbenennen aller Dateien von einem Ziel zu einem anderen

Ich gelistete alle Dateien aus dem Quellverzeichnis, aber ich kann move Methode nicht finden, wenn files[i] bekommen und ich kann auch nicht finden, wie man Dateien in einen anderen Ordner in der gleichen Zeit umbenennt und verschiebt.

Kann mir jemand sagen, was ich in getFiles Methode hinzufügen sollte, um zu verschieben und umzubenennen.

Das ist meine Klasse.

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]); 

      } 
     } 
    } 
} 

Antwort

3

Sie können file.renameto() zum Verschieben und Umbenennen verwenden.

Probe -

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

danken es funktioniert. Dateien [i] können die renameTo-Methode verwenden – Dejan

0

Copy-Datei von einem Ordner in einen anderen Dann Quelldatei

/** 
* 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

können Sie auf diese Weise schreiben

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]); 

     } 
    } 
} 

}

Verwandte Themen