<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]);
            }
        }
    }



                                                                                                           --    學海無涯
            

    主站蜘蛛池模板: 日韩在线a视频免费播放| 99久久免费国产精精品| 无码国产精品一区二区免费虚拟VR| 久久久久亚洲AV成人网| 四虎精品成人免费视频| 免费a级毛片18以上观看精品| 无码天堂va亚洲va在线va| 亚洲M码 欧洲S码SSS222| a免费毛片在线播放| 亚洲午夜福利717| 久久狠狠躁免费观看| 亚洲国产一区二区a毛片| 中文字幕在线免费| 国产成人精品日本亚洲网址| 无码乱肉视频免费大全合集| 亚洲av片在线观看| 国产a v无码专区亚洲av| 中文字幕无线码中文字幕免费| 亚洲AV中文无码字幕色三| 亚洲国产精品免费在线观看| 亚洲国产成+人+综合| 四虎在线免费播放| 一级毛片大全免费播放下载| 国产精品亚洲片在线观看不卡| 最近免费中文在线视频| 亚洲精品伦理熟女国产一区二区| 男人的天堂亚洲一区二区三区| 97性无码区免费| 亚洲av无码专区在线电影天堂| 亚洲性日韩精品一区二区三区| 一区二区免费视频| 自拍偷区亚洲国内自拍| 亚洲国产一区二区三区| 99视频在线看观免费| 亚洲av成人片在线观看| 亚洲Av综合色区无码专区桃色| 久久99九九国产免费看小说| 人人公开免费超级碰碰碰视频| 亚洲av永久无码精品漫画| 日韩免费一区二区三区| 日本免费在线观看|