1. 程式人生 > >java目錄的建立、讀取、刪除、過濾

java目錄的建立、讀取、刪除、過濾

java目錄的建立

File類中有兩個方法可以用來建立資料夾:

  • mkdir( )方法建立一個資料夾,成功則返回true,失敗則返回false。失敗表明File物件指定的路徑已經存在,或者由於整個路徑還不存在,該資料夾不能被建立。
  • mkdirs()方法建立一個資料夾和它的所有父資料夾
package trsdf;

import java.io.File;

public class CreateDir {

	public static void main(String[] args) {
		// mkdirs()方法建立(多層資料夾) 一個資料夾和它的所有父資料夾。
		String dirname = "D:/tmp/user/java/bin";
		File d =new File(dirname);
		d.mkdirs();
		System.out.println(d.getAbsolutePath());
		
		
		//mkdir( )方法建立一個資料夾,成功則返回true,失敗則返回false。
		//失敗表明File物件指定的路徑已經存在,或者由於整個路徑還不存在,該資料夾不能被建立
		String dir2 = "D:/testdir";
		File d2 =new File(dir2);
		d2.mkdir();
		System.out.println(d2.getAbsolutePath());
	}

}

=========================================================================

java目錄的讀取

package com.demo;

import java.io.File;

public class DirList {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String dirname = "D:/tmp";
        File f1 = new File(dirname);
        //如果建立一個 File 物件並且它是一個目錄,那麼呼叫 isDirectory() 方法會返回 true。
        if (f1.isDirectory()) {
            System.out.println("目錄 " + dirname);
            //可以通過呼叫該物件上的 list() 方法,來提取它包含的檔案和資料夾的列表。
            String s[] = f1.list();
            for (int i = 0; i < s.length; i++) {
                File f = new File(dirname + "/" + s[i]);
                if (f.isDirectory()) {
                    System.out.println(s[i] + " 是一個目錄");
                } else {
                    System.out.println(s[i] + " 是一個檔案");
                }
            }
        } else {
            System.out.println(dirname + " 不是一個目錄");
        }
	}

}

==================================================================

java目錄的刪除

package com.demo;

import java.io.File;

public class DeleteFileDemo {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		// 這裡修改為自己的測試目錄
        File folder = new File("D:/tmp");
        deleteFolder(folder);
	}
	// 刪除檔案及目錄
    public static void deleteFolder(File folder) {
        File[] files = folder.listFiles();
        if (files != null) {
            for (File f : files) {
                if (f.isDirectory()) {
                    deleteFolder(f);//遞迴呼叫deleteFolder方法,刪除所有檔案及目錄
                } else {
                	//刪除檔案可以使用 java.io.File.delete() 方法。
                    f.delete();
                }
            }
        }
        folder.delete();
    }
}

================================================

java目錄的過濾

package com.demo;

import java.io.File;
import java.io.FilenameFilter;

public class GuolvWenjian implements FilenameFilter{

	public static void main(String[] args) {
		
		GuolvWenjian gl  =new GuolvWenjian();
		gl.f();
	}
	//重寫介面方法,過濾目錄下的指定型別的所有檔案
	@Override
	public boolean accept(File f, String name) {
		//返回當前目錄下以.java結尾的檔案
		return name.endsWith(".java");
	}
	public void f(){
        File f=new File("D:/tmp");
        //以字串的形式,先列出當前目錄下所有檔案
        String []filename=f.list();
        System.out.println("目錄"+f.getAbsolutePath()+"下的所有檔案和目錄");
        for(int i=0;i<filename.length;i++){
            System.out.println(filename[i]);
        }
        System.out.println("=========================");
        //public String[ ] list(FilenameFilter obj) 該方法用字串的形式返回目錄下的指定型別的所有檔案
        //public File[ ] listFiles(FilenameFilter obj) 該方法用 File 物件形式返回目錄下的指定型別的所有檔案
        String []fname=f.list(this);//這裡的this代指FilenameFilter檔名過濾器
        System.out.println("以*.java為字尾的檔案如下:");
        for(int i=0;i<fname.length;i++){
            System.out.println(fname[i]);
        }
        
    }

}