JAVA File類(文件的遍歷,創建,刪除)


 

File類構造函數

	File f1=new File("H://asc//");//傳入文件/目錄的路徑
		File f2=new File(f1,"test.txt");//第一個參數為一個目錄文件,第二個參數為要在當前f1目錄下要創建的文件
	
		

 

file.list();  獲得file文件夾下所有文件/目錄的字符串數組

	String []liStrings=f1.list();
		for (int i = 0; i < liStrings.length; i++) {
			System.out.println(liStrings[i]);
		}
		
	 

利用list()函數遍歷文件夾,遞歸顯示文件夾下的文件/文件夾

public static void dfs(String filename) { // java 中區分大小寫 String類首字母大寫

		File f = new File(filename);
		String namelist[] = f.list();
		for (int i = 0; i < namelist.length; i++) {
			File fchild = new File(filename + "/" + namelist[i]);
			for (int j = 0; j < deep; j++)
				System.out.print("   ");
			if (!fchild.isDirectory())
				System.out.println(namelist[i]);// 文件 打印
			else {// 目錄
				System.out.println(namelist[i] + "/");// 先打印 再遞歸調用本身
				dfs(filename + "/" + namelist[i]);
			}
		}
	}

  

 

 

file.isFile()判斷當前file文件是否是文件    file.isDirectory()是否為目錄     file.exist(); 此文件或者目錄是否存在

		File f1=new File("H://asc//");//
		File f2=new File(f1,"test.txt");//
		File f3=new File("H://notexistdir");
//	
		System.out.println(f1.isFile());
		System.out.println(f2.isFile());
		System.out.println(f3.isFile());
		
		System.out.println(f1.isDirectory());
		System.out.println(f2.isDirectory());
		
		System.out.println(f3.exists());
 //運行結果:
false
true
false
true
false
false

  

  

文件/目錄的創建,刪除

函數file.createNewFile()  創建此File對象文件 如果file之間已經存在,createNewFile 返回fasle 創建文件失敗

函數 file.mkdir() 創建文件目錄  ,此函數有個缺點 就是只能在已存在的路徑下創建文件夾 如果你的File對象路徑在電腦中不存在 則會創建失敗。而使用 file.mkdirs() 即使文件路徑不存在 函數會自動創建相應的文件夾目錄 保證file對象的創建成功,

建議使用mkdirs()來創建文件夾

	public void creatnewfile(String path) {// 創建新文件\目錄
		File file = new File(path); 
		if (file.exists()) { //判斷此路徑下的文件存在否
			System.out.println("此文件已經存在!");
			return;
		}
		System.out.println("創建此路徑下的文件/目錄?");
		System.out.println("輸入1創建文件目錄                 輸入2 創建文件 ");

		Scanner scanner = new Scanner(System.in);
		int j = scanner.nextInt();
		if (j == 2) {
			try {
				file.createNewFile();//創建文件
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		} else {
			file.mkdirs();//創建目錄
		}
	}

  file.delete()可實現文件/文件夾的刪除 ,delete()函數雖然可以刪除文件 ,但是在文件夾的刪除上,只能實現對空目錄的刪除,如果你要刪除的文件夾下面有文件/文件夾 則會刪除失敗

  如果要實現對此類文件夾的刪除 可以使用dfs遍歷文件目錄 +delete()實現

    public boolean deleteFile(String path) {// 刪除文件|目錄(連聯刪除)
        File file = new File(path);
        if (!file.exists()) {
            System.out.println("文件不存在!");
            return false;
        }        
        dfsdelete(path);
        return true;
    }

    public void dfsdelete(String path) {
        File file=new File(path);
        if(file.isFile()) {//如果此file對象是文件的話,直接刪除
            file.delete();
            return;
        }
        //當 file是文件夾的話,先得到文件夾下對應文件的string數組 ,遞歸調用本身,實現深度優先刪除
            String [] list=file.list();
            for (int i = 0; i < list.length; i++) {
                dfsdelete(path+File.separator+list[i]);
                
            }//當把文件夾內所有文件刪完后,此文件夾已然是一個空文件夾,可以使用delete()直接刪除
            file.delete();
        return;
    }
    

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM