<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Cyh的博客

    Email:kissyan4916@163.com
    posts - 26, comments - 19, trackbacks - 0, articles - 220

    列出指定目錄下的文件

    Posted on 2009-05-24 20:32 啥都寫點 閱讀(208) 評論(0)  編輯  收藏 所屬分類: J2SE
    關鍵技術:
    • File類的list方法返回該目錄下所有的文件(包括目錄)的文件名,文件名不包含路徑信息。
    • File類的listFiles方法返回該目錄下所有文件(包括目錄)的File對象。
    • FilenameFilter是文件名過濾器接口類,所有自定義的文件名過濾器必須實現該接口的accept方法。

    package book.io;
    import java.io.File;
    import java.io.FilenameFilter;

    public class ListFileUtil {
        
        
    /**
         * 這是一個內部類,實現了FilenameFilter接口,用于過濾文件
         
    */
        
    static class MyFilenameFilter implements FilenameFilter{
            
    //文件名后綴
            private String suffix = "";
            
            
    public MyFilenameFilter(String surfix){
                
    this.suffix = surfix;
            }
            
    public boolean accept(File dir, String name) {
                
    //如果文件名以surfix指定的后綴相同,便返回true,否則返回false
                if (new File(dir, name).isFile()){
                    
    return name.endsWith(suffix);
                }
    else{
                    
    //如果是文件夾,則直接返回true
                    return true;
                }
            }
        }
        
        
    /**
         * 列出目錄下所有文件包括子目錄的文件路徑
         * 
    @param dirName    文件夾的文件路徑
         
    */
        
    public static void listAllFiles(String dirName){
            
            
    //如果dir不以文件分隔符結尾,自動添加文件分隔符。
            if (!dirName.endsWith(File.separator)){
                dirName 
    = dirName + File.separator;
            }
            File dirFile 
    = new File(dirName);
            
    //如果dir對應的文件不存在,或者不是一個文件夾,則退出
            if (!dirFile.exists() || (!dirFile.isDirectory())){
                System.out.println(
    "List失敗!找不到目錄:" + dirName);
                
    return;
            }
            
    //列出源文件夾下所有文件(包括子目錄)
            File[] files = dirFile.listFiles();
            
    for (int i = 0; i < files.length; i++){
                
    if (files[i].isFile()){
                    System.out.println(files[i].getAbsolutePath() 
    + " 是文件!");
                }
    else if (files[i].isDirectory()){
                    System.out.println(files[i].getAbsolutePath() 
    + " 是目錄!");
                    ListFileUtil.listAllFiles(files[i].getAbsolutePath());
                }
            }
        }
        
    /**
         * 列出目錄中通過文件名過濾器過濾后的文件。
         * 
    @param filter    文件名過濾器對象
         * 
    @param dirName        目錄名
         
    */
        
    public static void listFilesByFilenameFilter(FilenameFilter filter, String dirName){
            
            
    //如果dir不以文件分隔符結尾,自動添加文件分隔符。
            if (!dirName.endsWith(File.separator)){
                dirName 
    = dirName + File.separator;
            }
            File dirFile 
    = new File(dirName);
            
    //如果dir對應的文件不存在,或者不是一個文件夾,則退出
            if (!dirFile.exists() || (!dirFile.isDirectory())){
                System.out.println(
    "List失敗!找不到目錄:" + dirName);
                
    return;
            }
            
    //列出源文件夾下所有文件(包括子目錄)
            File[] files = dirFile.listFiles(filter);
            
    for (int i = 0; i < files.length; i++){
                
    if (files[i].isFile()){
                    System.out.println(files[i].getAbsolutePath() 
    + " 是文件!");
                }
    else if (files[i].isDirectory()){
                    System.out.println(files[i].getAbsolutePath() 
    + " 是目錄!");
                    ListFileUtil.listFilesByFilenameFilter(filter, files[i].getAbsolutePath());
                }
            }
        }

        
    public static void main(String[] args) {
            String dir 
    = "C:/temp";
    //        System.out.println((dir + "目錄下的內容: "));
    //        ListFileUtil.listAllFiles(dir);
    //        
    //        System.out.println();
    //        System.out.println("經過過濾器過濾后的內容:");
    //        //新建一個文件名過濾器。參數為".txt"
    //        FilenameFilter myFilenameFilter = new ListFileUtil.MyFilenameFilter(".txt");
    //        ListFileUtil.listFilesByFilenameFilter(myFilenameFilter, dir);
            
            String[] t 
    = new File(dir).list();
            
    for (int i=0; i<t.length; i++){
                System.out.println(t[i]);
            }
        }
    }



                                                                                                           --    學海無涯
            

    主站蜘蛛池模板: 国产精品免费高清在线观看| sihu国产精品永久免费| 国产2021精品视频免费播放| 亚洲av色福利天堂| 特级无码毛片免费视频尤物| 亚洲AV无码专区在线播放中文| 免费无码av片在线观看| 亚洲天堂久久精品| 波多野结衣免费在线| 亚洲精品第一综合99久久| 毛片免费视频播放| 日本亚洲中午字幕乱码| 亚洲中文字幕伊人久久无码| 日本三级在线观看免费| 久久亚洲精品AB无码播放| 国产92成人精品视频免费| 亚洲中文字幕久久精品无码A| 国产精品久久免费视频| WWW国产成人免费观看视频| 日韩精品亚洲人成在线观看| 在线观看特色大片免费视频| 色九月亚洲综合网| 亚洲不卡中文字幕无码| 免费福利视频导航| 黄色免费在线观看网址| 久久久久亚洲精品无码系列| 波多野结衣免费在线| 特级毛片爽www免费版| 亚洲ⅴ国产v天堂a无码二区| 毛片A级毛片免费播放| eeuss在线兵区免费观看| 亚洲视频网站在线观看| 国产一区二区三区免费视频| 永久在线观看免费视频| 亚洲熟女乱色一区二区三区| 亚洲开心婷婷中文字幕| 亚洲人成网站免费播放| 97国免费在线视频| 亚洲熟女精品中文字幕| 亚洲av永久无码精品古装片| 浮力影院第一页小视频国产在线观看免费 |