File相關(建立文件及目錄)

當前目錄下建立文件createNewFile()或目錄mkdir();刪除文件和目錄(用到遞歸)  delete();建立多級目錄 mkdirs();獲取目錄中的子項 File[] subs = dir.listFiles(); 文件過濾器篩選文件 File[] subs = dir.listFiles(filter);。java

import java.io.File;spa

import java.io.FileFilter;        .net

import java.io.IOException;

/**
 * File相關       
 * @author  Romanceling
 *
 */
public class FileTest {
    public static void main(String[] args) throws IOException {
        /*
         *
        /*
         * boolean exists()
         * 判斷File表示的文件或目錄是否真實存在
         */
        if(!file.exists()){
            //建立該文件
            file.createNewFile();
            System.out.println("建立完畢!");
        }
對象

       /*
         * 刪除test.txt文件
         */
        if(file.exists()){
            file.delete();
            System.out.println("刪除完畢!");
        }
遞歸

        /*
         * 在當前目錄下建立一個目錄(路徑)demo
         */
get

        File dir = new File("demo");
        if(!dir.exists()){
            //建立一個目錄
            dir.mkdir();
            System.out.println("建立完畢!");
        }
it

        //刪除一個目錄io

        if(dir.exists()){
            /*
             * 使用delete刪除目錄時,必須保證該
             * 目錄是一個空目錄(不含有任何子項)
             * 才能夠將其刪除.
             */
            dir.delete();
            System.out.println("刪除完畢!");
        }
class

      /**刪除多級目錄
     * 刪除給定的File對象表示的文件或目錄
     * 此時須要用到遞歸
     */
*    public static void delete(File file){
*        if(file.isDirectory()){    //若是是目錄
*            //先刪除該目錄中全部內容
*           File[] subs = file.listFiles();
*           for(File sub : subs){
*               delete(sub);    //遞歸
test

*         }

*         file.delete();    //文件或者空的目錄能夠直接刪除

*    }

     */   

        /*
         * 在當前目錄下建立一個多級目錄:
         * a/b/c/d/e/f
         */
        File dir = new File(
            "a"+File.separator+      //File.separator 表明"/"(Linux系統中)    或"\"(Windows系統中)
            "b"+File.separator+
            "c"+File.separator+
            "d"+File.separator+
            "e"+File.separator+
            "f"
        );
        if(!dir.exists()){
            /*
             * mkdirs在建立當前目錄的同時會將
             * 其全部不存在的父目錄一同建立出來
             */
            dir.mkdirs();
            System.out.println("建立完畢!");
        }

        /*
         * 獲取當前目錄中的全部內容
         */
        File dir = new File(".");
        //獲取一個目錄中的全部子項
        File[] subs = dir.listFiles();
        
        for(File sub : subs){
            if(sub.isFile()){
                System.out.print("文件:");
            }else{
                System.out.print("目錄:");
            }
            System.out.println(sub.getName());
        }

        /*
         * 配合過濾器(自定義類MyFilter),獲取當前目錄下全部名字以"."開頭的子項
         */
        File dir = new File(".");
        MyFilter filter = new MyFilter();
        /*
         * 重載的listFiles方法返回的子項是知足給定
         * 過濾器要求的子項,其餘則被忽略
         */
        File[] subs = dir.listFiles(filter);
        for(File sub : subs){
            System.out.println(sub.getName());
        }    

        /*也能夠用匿名內部類的方式簡寫文件過濾器(FileFilter)

*        File dir = new File(".");
*        FileFilter filter = new FileFilter(){
*            public boolean accept(File file){
*                return file.isFile();
*            }
*        };
*        File[] subs = dir.listFiles(filter);

    */

    }
}


/**
 * 使用文件過濾器(FileFilter)獲取一個目錄中知足條件的子項
 *
 */

class MyFilter implements FileFilter{     /**      * 過濾條件:名字是以"."開頭的      */     public boolean accept(File file) {         String name = file.getName();         System.out.println("正在過濾:"+name);         return name.startsWith(".");     } }  

相關文章
相關標籤/搜索