145_IO_File_常用方法_資料夾操作
阿新 • • 發佈:2018-11-09
常用方法_資料夾操作
- Test04_DirMethod.java
package _01.io.file;
import java.io.File;
import java.io.FilenameFilter;
import java.util.Arrays;
/**
* 5.操作目錄
* mkdir() 建立目錄->必須確保父目錄存在,如果不存在,建立失敗
* mkdirs() 建立目錄,如果父目錄鏈不存在一同建立
* list() 檔案|目錄 名字串形式
* listFiles() 檔案|目錄 File物件形式
* static listRoots() 根路徑
*/
public class Test04_DirMethod {
public static void main(String[] args) {
test1();
}
/**
* mkdir() 建立目錄->必須確保父目錄存在,如果不存在,建立失敗
* mkdirs() 建立目錄,如果父目錄鏈不存在一同建立
*/
public static void test1(){
String path ="E:/IOTest/text/a/temp";
File src =new File(path);
//src.mkdir();
src.mkdirs();
}
/**
* list() 檔案|目錄 名字串形式
* listFiles() 檔案|目錄 File物件形式
*/
public static void test2(){
String path ="E:/IOTest/a";
File src =new File(path); //資料夾
if(src.isDirectory()){ //存在並且為目錄
System.out.println("======子目錄|檔名===");
String[] subNames =src.list();
for (String temp:subNames){
System.out.println(temp);
}
System.out.println("=====子目錄|檔案File物件====");
File[] subFiles =src.listFiles();
for(File temp:subFiles){
System.out.println(temp.getAbsolutePath());
}
System.out.println("=====子檔案.java物件====");
//命令設計模式
subFiles =src.listFiles(new FilenameFilter(){
@Override
/**
* dir代表src
*/
public boolean accept(File dir, String name) {
//System.out.println(dir.getAbsolutePath());
return new File(dir,name).isFile()&&name.endsWith(".java");
}
});
for(File temp:subFiles){
System.out.println(temp.getAbsolutePath());
}
}
}
/**
* 輸出子孫級目錄|檔案的名稱(絕對路徑)
* 1.listFiles()
* 2.遞迴
* static listRoots() 根路徑
*/
public static void test03(){
String path ="E:/IOTest/";
File parent =new File(path);
printName(parent);
File[] roots =File.listRoots();
System.out.println(Arrays.toString(roots));
for(File temp:roots){
printName(temp);
}
}
public static void printName(File src){
if(null==src || !src.exists()){
return ;
}
System.out.println(src.getAbsolutePath());
if(src.isDirectory()){ //資料夾
for(File sub:src.listFiles()){
printName(sub);
}
}
}
}