java目錄的建立、讀取、刪除、過濾
阿新 • • 發佈:2018-11-23
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]);
}
}
}