2011-07-07 84 views
0

String fileOne =「C:/1236.pdf」;使用JAVA重命名現有文件或pdf其失敗

String fileTwo =「C:/22.pdf」;

String mergedFileLocation =「C:/myMergedData.pdf」;

如果(新文件(mergedFileLocation).renameTo(新文件(fileOne))){

//重命名成功}否則{

//重命名失敗}

後合併完成後

重命名現有的文件

所以我需要先刪除後fileOne我想我需要重新命名

我需要重命名和更換mergedFileLocation等於fileOne

myMergedData.pdf到1236.pdf

回答

0

先刪除舊文件。

File f = new File(fileOne); 
if (f.delete() && new File(mergedFileLocation).renameTo(f)) { 
    //successfully renamed 
} 
0

您嘗試使用已存在的文件名重命名文件將失敗。您必須先刪除或重命名舊文件。

public static void main(String[] args) throws IOException { 

    File workingDir = new File("."); 
    File fileOne = new File("1236.pdf"); 
    File mergedFile = new File("myMergedData.pdf"); 

    fileOne.createNewFile(); 
    mergedFile.createNewFile(); 

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

    String[] list = workingDir.list(filter); 
    System.err.println(Arrays.asList(list)); 

    if (fileOne.isFile()) { 
     // delete or rename 
     if (fileOne.delete()) { 
     // deleted successfully 
     } 
    } 

    list = workingDir.list(filter); 
    System.err.println(Arrays.asList(list)); 

    if (mergedFile.renameTo(fileOne)) { 
     // renamed successfully 
    } else { 
     // rename failed 
    } 

    list = workingDir.list(filter); 
    System.err.println(Arrays.asList(list)); 

    } 

輸出是

[1236.pdf, myMergedData.pdf] 
[myMergedData.pdf] 
[1236.pdf]