文件(File類): 構造方法;常用方法;案例(修改文件或多級文件夾中所有相同類型的文件的後綴名 ;刪除文件或多級文件夾)

文件(File類)

一、 File類的概述和構造方法

File類的概述:
	文件和目錄路徑名的抽象表示形式
構造方法:
	File(String pathname):根據一個路徑得到File對象    
	File(String parent, String child):根據一個目錄和一個子文件/目錄得到File對象
  	File(File parent, String child):根據一個父File對象和一個子文件/目錄得到File對象
演示:
	1. File file = new File("D:\\IdeaProjects\\作業\src\\myhomework\\HomeWork.java") ;
	2. File file2 = new File("D:\\IdeaProjects\\作業\\src\\myhomework, "HomeWork.java") ;
	3. File file3 = new File("D:\\IdeaProjects\\作業\\src\\myhomework") ;
	   File file4 = new File(file3 , "HomeWork.java") ;
路徑:
	絕對路徑:帶有盤符號的詳細路徑
	相對路徑:不帶盤符號的路徑
	./當前路徑
	../當前路徑的上一級路徑
	../../上兩級

二、File類常用方法

1、與創建相關的方法

file.createNewFile();//創建文件或目錄,返回值爲是否創建成功
file.mkdir();//創建目錄,返回值爲是否創建成功,只能創建單級目錄
file.mkdirs();//可創建多級目錄

2、刪除相關的方法

file.delete();//刪除文件或非空目錄,注意不走回收站,返回值爲是否刪除成功

3、重命名相關方法

file.renameTo(file1);//file1爲新名字的File類型 重命名文件,返回值爲是否重命名成功,還可以實現剪切功能,如果源文件路徑和傳入文件路徑不一致,就會發生剪切現象

4、判斷功能

file.isFile();//判斷是否爲文件
file.isDirectory();//判斷是否爲文件夾
file.exists();//判斷文件或目錄是否存在
file.canRead();//判斷文件是否可讀
file.canWrite();//判斷文件是否可寫
file.isHidden();//判斷文件或目錄是否隱藏
file.canExecute();//Linux系統下判斷是否是可執行文件
file.isAbsolute();//判斷路徑名是否爲絕對路徑名

5、關於獲取的方法

file.getName();//獲取文件名或路徑名
file.length();//獲取文件字節數
file.getAbsolutePath();//獲取絕對路徑,返回字符串形式
file.getAbsoluteFile();//獲取絕對路徑,返回文件類型
file.getPath();//獲取相對路徑,返回字符串形式
file.getParent();//獲取該文件父路徑,返回字符串形式
file.getParentFile();//獲取該文件父路徑,返回文件形式
file.getTotalSpace();//獲取某個盤符的空間大小(字節)
file.getFreeSpace();//獲取剩餘空間(字節)
file.lastModified();//獲取文件最後一次修改時間(毫秒)
file.list();//獲取該目錄下所有的文件或文件夾的名稱,返回String[]數組
file.listFiles();//獲取該目錄下所有的文件或文件夾的File[]數組,可以傳入過濾器

三、案例

//修改文件或多級文件夾中所有相同類型的文件的後綴名
//刪除文件或多級文件夾
import java.io.File;

public class MyTest {
    public static void main(String[] args) {
        File file = new File("C:\\Users\\73256\\Desktop","新建文件夾");
        boolean f1 = rename(file,".txt",".doc");
        System.out.println(f1);

        File file1 = new File("C:\\Users\\73256\\Desktop","新建文件夾");
        boolean f = deleteFile(file1);
        System.out.println(f);
    }

    //修改文件或多級文件夾中所有相同類型的文件的後綴名
    private static boolean rename(File file,String oldSuffixName,String newSuffixName) {
        boolean flag=false;

        if(file==null||!file.exists()){
            return false;
        }

        if(file.isFile()){
            File file1 = new File(file.getParentFile(), file.getName().replace(oldSuffixName, newSuffixName));
            file.renameTo(file1);
            return true;
        }

        File[] files = file.listFiles();
        for (File f : files) {
            if(f.isFile()&&f.getName().endsWith(oldSuffixName)){
                File file1 = new File(f.getParentFile(), f.getName().replace(oldSuffixName, newSuffixName));
                boolean b = f.renameTo(file1);
                flag=(!flag&&b);
            }else {
                rename(f,oldSuffixName,newSuffixName);
            }
        }
        return flag;
    }

    //刪除文件或多級文件夾
    private static boolean deleteFile(File file) {
        if(file==null||!file.exists()){
            return false;
        }
        if(file.isFile()){
            file.delete();
            return true;
        }
        File[] files = file.listFiles();
        for (File f : files) {
            if(file.isDirectory()){
                deleteFile(f);
            }
            f.delete();
        }
        file.delete();
        return !file.exists();
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章