Java File類常用方法及執行個體

來源:互聯網
上載者:User

標籤:directory   目錄名   一個   布爾   python   str   last   absolute   直接   

建立:
createNewFile()在指定位置建立一個空檔案,成功就返回true,如果已存在就不建立,然後返回false。
mkdir()  在指定位置建立一個單級檔案夾。
mkdirs()  在指定位置建立一個多級檔案夾。
renameTo(File dest)如果目標檔案與源檔案是在同一個路徑下,那麼renameTo的作用是重新命名, 如果目標檔案與源檔案不是同一個路徑下,那麼renameTo的作用就是剪下,而且還不能操作檔案夾。

刪除:
delete()  刪除檔案或者一個空檔案夾,不能刪除非空檔案夾,馬上刪除檔案,返回一個布爾值。
deleteOnExit()jvm退出時刪除檔案或者檔案夾,用於刪除臨時檔案,無傳回值。

 判斷:
exists()  檔案或檔案夾是否存在。
isFile()  是否是一個檔案,如果不存在,則始終為false。
isDirectory()  是否是一個目錄,如果不存在,則始終為false。
isHidden()  是否是一個隱藏的檔案或是否是隱藏的目錄。
isAbsolute()  測試此抽象路徑名是否為絕對路徑名。
boolean canExecute()判斷檔案是否可執行
boolean canRead()判斷檔案是否可讀
boolean canWrite() 判斷檔案是否可寫

 擷取:
getName()  擷取檔案或檔案夾的名稱,不包含上級路徑。
getAbsolutePath()擷取檔案的絕對路徑,與檔案是否存在沒關係
length()  擷取檔案的大小(位元組數),如果檔案不存在則返回0,如果是檔案夾也返回0。
getParent()  返回此抽象路徑名父目錄的路徑名字串;如果此路徑名沒有指定父目錄,則返回null。
lastModified()擷取最後一次被修改的時間。

檔案夾相關:
static File[] listRoots()列出所有的根目錄(Window中就是所有系統的盤符)
list()  返回目錄下的檔案或者目錄名,包含隱藏檔案。對於檔案這樣操作會返回null。
listFiles()  返回目錄下的檔案或者目錄對象(File類執行個體),包含隱藏檔案。對於檔案這樣操作會返回null。
list(FilenameFilter filter)返回指定目前的目錄中符合過濾條件的子檔案或子目錄。對於檔案這樣操作會返回null。
listFiles(FilenameFilter filter)返回指定目前的目錄中符合過濾條件的子檔案或子目錄。對於檔案這樣操作會返回null。



********************執行個體********************


import java.io.File;

1.在指定位置建立檔案creatNewFile()
File myFile = new File("D:\\test.txt");
if(!myFile.exists){
    myFile.mkdir();//建立檔案夾
    
    myFile.creatNewFile();建立檔案
}


2.在指定位置建立檔案夾mkdir()
File myFile = new File("D:\\yxy");
if(!myFile.exists){
    myFile.mkdir();//建立檔案夾
}

3.在指定位置建立一個多級檔案夾mkdirs()
File myFile = new File("D:/yxy");
if(!myFile.exists){
    //如果父目錄存在,則直接在父目錄中建立子目錄;如果父目錄不存在,遞迴建立所有目錄
    myFile.mkdirs();
}



4.使用遞迴遍曆目錄:
public class Test2 {

    public static void main(String[] args) {
           Myfile yxy=new Myfile();
           yxy.yxyfile();
    }
}
class Myfile{
    File myFile = new File("D:/yxy");
    File[] files=myFile.listFiles();
    void yxyfile(){
        for(File fd:files){
            if(fd.isDirectory()){
                System.out.println(fd);
                files =fd.listFiles();//產生新的listFiles()
                yxyfile();//使用遞迴
            }else{
                System.out.println(fd);
            }
        }
    }


5.清空目錄下的所有檔案夾和檔案
①方法一:
public class Test2 {

    public static void main(String[] args) {
           Myfile yxy=new Myfile();
           yxy.yxyfile();
    }
}
class Myfile{
    File myFile = new File("D:/yxy");
    File[] files=myFile.listFiles();
    void yxyfile(){
        //第一個for迴圈用於刪除檔案
        ArrayList<File> dirname=new ArrayList<File>();//用於儲存目錄
        for(File fd:files){
            if(fd.isDirectory()){
                System.out.println(fd);
                files =fd.listFiles();//產生新的listFiles()
                dirname.add(fd);
                yxyfile();//使用遞迴
            }else{
                System.out.println(fd);
                fd.delete();//刪除所有的檔案
            }
            //刪除空目錄
            for(File dir:dirname){
                dir.delete();
            }}}}

②方法二:
public class Test2 {

    public static void main(String[] args) {
           Myfile yxy=new Myfile();
           yxy.yxyfile();
    }
}
class Myfile{
    File myFile = new File("D:/yxy");
    File[] files=myFile.listFiles();
    void yxyfile(){
        //第一個for迴圈用於刪除檔案
        for(File fd:files){
            if(fd.isDirectory()){
                System.out.println(fd);
                files =fd.listFiles();//產生新的listFiles()
                yxyfile();//使用遞迴
            }else{
                System.out.println(fd);
                fd.delete();//刪除所有的檔案
            }
            //刪除空目錄
            File[] dir=myFile.listFiles();//剩下的空檔案夾
            for(int i=0;i<dir.length;i++){
                dir[i].delete();
            }}}}

③方法三(調用cmd,簡單):
public class Test1 {

    public static void main(String[] args) {
        try {  
            String cmd = "cmd.exe /c rd /s/q E:\\yxy";  
            Runtime.getRuntime().exec(cmd);
            System.out.println("yes");
            } catch (Exception e) {  
                System.out.println("Error");
            } }}

注:/s代表刪除所有子目錄及子目錄下檔案,/q代表刪除時不需再次確認,

6.list()和listFiles()的區別
        File file=new File("E:\\xxx");
        String[] filename1=file.list();//返迴文件或目錄的名字
        File[] filename2=file.listFiles();//返迴文件或目錄的完整路徑
        File[] filename3=file.listRoots();//列出所有根目錄(Window中就是所有系統的盤符)
        for(String name1:filename1){System.out.println(name1);}
        for(File name2:filename2){System.out.println(name2);}
        for(File name3:filename3){System.out.println(name3);}

輸出:
list():
python內建進位轉換方法.png
python的物件導向.png
建立檔案夾

listFiles():
E:\xxx\python內建進位轉換方法.png
E:\xxx\python的物件導向.png
E:\xxx\建立檔案夾

listRoots():
C:\
D:\
E:\
Z:\

7.renameTo(File dest)
注釋:如果目標檔案與源檔案是在同一個路徑下,那麼renameTo的作用是重新命名, 如果目標檔案與源檔案不是在同一個路徑下

,那麼renameTo的作用就是剪下,而且還不能操作檔案夾。

①重新命名:
File file=new File("E:\\xxx\\python的物件導向.png");
file.renameTo(new File("E:\\xxx\\py的物件導向.png"));

②移動檔案:
File file=new File("E:\\xxx\\python的物件導向.png");
file.renameTo(new File("D:\\python的物件導向.png"));

8.調用CMD命令移動整個檔案夾
        try{
            Runtime.getRuntime().exec("cmd.exe /c move E:\\xxx\\1 E:");
        }catch(Exception e){
            System.out.println("Error");
        }

Java File類常用方法及執行個體

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.