public class FileDemo {
public static void main(String[] args) {
File dir=new File("G:\\360驅動大師目錄");
showDir(dir,0);
}
//列印目錄下第一級内容
public static void listDemo(){
File f=new File("c:\\");
String[] names=f.list();//調用list方法的對象必須是目錄
for(String name:names){
System.out.println(name);
}
}
//擷取系統磁盤名稱
public static void listRootsDemo(){
File[] files=File.listRoots();//擷取盤符
for(File f:files){
System.out.println(f);
}
}
//過濾方式擷取檔案
public static void listDemo_2(){
File dir=new File("F:\\SVN_D\\DD\\src\\com\\ygl");
String[] arr=dir.list(new FilenameFilter(){
@Override
public boolean accept(File dir, String name) {
// TODO Auto-generated method stub
/*if(name.endsWith(".java")){
return true;
}
else{
return false;
}*/
return name.endsWith(".java");
}
});
System.out.println(arr.length);
for(String name:arr){
System.out.println(name);
}
}
//listFiles()擷取目前目錄名稱對象
public static void listFiles_Demo(){
File dir=new File("G:\\");
File[] files=dir.listFiles();//目前目錄下内容
for(File f:files){
System.out.println(f.getName());//檔案名,不帶路徑
}
}
//列出目錄下的所有檔案,帶層次
public static void showDir(File dir,int level){
//System.out.println(getLevel(level)+dir.getName());
if(dir!=null){
if(!dir.isHidden()&&dir.isDirectory()){
System.out.println(getLevel(level)+dir.getName());
level++;
File[] files=dir.listFiles();
if(files!=null){
for(int i=0;i<files.length;i++){
showDir(files[i],level);
}
}
}else{
System.out.println(getLevel(level)+dir);
}
}
}
public static String getLevel(int level){
StringBuilder sb=new StringBuilder();
sb.append("|--");
for(int x=0;x<level;x++){
sb.insert(0," ");
}
return sb.toString();
}
}