java 重新命名操作

丿灬安之若死發表於2017-11-01

在Java中,對檔案或資料夾進行重新命名是很簡單的,因為Java的File類已經封裝好renameTo的方法。

修改檔案或者資料夾的名字都使用這個方法。例如如下的程式:

[java] view plain copy
  1. import java.io.*;  
  2. public class renameTest {  
  3.   
  4.     public static void main(String[] args) {  
  5.         //想命名的原檔案的路徑  
  6.         File file = new File("f:/a/a.xlsx");  
  7.         //將原檔案更改為f:\a\b.xlsx,其中路徑是必要的。注意  
  8.         file.renameTo(new File("f:/a/b.xlsx"));  
  9.         //想命名的原資料夾的路徑  
  10.         File file1 = new File("f:/A");  
  11.         //將原資料夾更改為A,其中路徑是必要的。注意  
  12.         file1.renameTo(new File("f:/B"));  
  13.     }  
  14.   
  15. }  

一旦執行,則會把f:/a/a.xlsx先更名為f:/a/b.xlsx,然後會把f:/A這個資料夾更名為f:/B。

請注意在Windows下,資料夾與檔名稱是不區分大小寫的。

因此f:/A與f:/a其實是一碼事。

其實資料夾改名還可以寫得更簡短點,連這個File類的宣告都不要了。

把f:/a/a.xlsx更名為f:/a/b.xlsx直接這樣寫得了:

[java] view plain copy
  1. import java.io.*;  
  2. public class renameTest {  
  3.   
  4.     public static void main(String[] args) {  
  5.         //把f:/a/a.xlsx原檔案重新命名為f:/a/b.xlsx,其中路徑是必要的。注意  
  6.         new File("f:/a/a.xlsx").renameTo(new File("f:/a/b.xlsx"));  
  7.     }  
  8.   
  9. }  
然後,值得注意的是,更名檔案的前面的父路徑必須相同,即,如下的方式是不對的

[java] view plain copy
  1. import java.io.*;  
  2. public class renameTest {  
  3.   
  4.     public static void main(String[] args) {  
  5.         new File("f:/a/a.xlsx").renameTo(new File("c:/a/b.bmp"));  
  6.     }  
  7.   
  8. }  

執行之後renameTo方法返回false,然後系統的資料夾沒有任何改變。

//批量 操作

private static void five(String resath) {
        File file = new File(resath);
        if(!file.isDirectory()){
            System.out.println("檔案目錄錯誤");
            return;
        }
        File[] files = file.listFiles();
        for (File file1 : files) {
            if(file1.isDirectory()) {
                file1.renameTo(new File(file.getAbsoluteFile() + "\\values-" + file1.getName()));
            }
        }

    }


相關文章