文件遍历和过滤

昨天完成利用土豆http接口自动上传程序 ,
接着写了一个文件遍历和过滤程序,以便自动查找上传文件

import java.io.*;
import java.util.ArrayList;
import java.util.List;
public class MediaFileProcess {
    private String filepath=null;    
    private String filter=".wmv,.rmvb,.rm,.flv,.avi";
    private String filetxt="/medialist.txt";
    private List filelist=new ArrayList();  
    public MediaFileProcess(){
        //为空则取当前路径
        filepath=System.getProperty("user.dir");        
    }
    public MediaFileProcess(String s){        
        filepath=s;
        
    }
    private void getAllFile(String parent) throws Exception
    {
        File parentF = new File(parent);
        if(!parentF.canRead()) return;
        File[] subFiles=parentF.listFiles(new MediaFilter());
        //File[] subFiles=parentF.listFiles();
        if(subFiles==null) return;
        

        for (int i = 0; i < subFiles.length; i++)
        {
            if(subFiles[i].isFile())
            {
                filelist.add(subFiles[i].getAbsolutePath());
                System.out.println(subFiles[i].getAbsolutePath());
            }else{
                //System.out.println(subFiles[i].getAbsolutePath()+"/r/n");
                getAllFile(subFiles[i].getAbsolutePath());               
           
            }
         }
    }
     public List getFilelist()
     {
        return filelist;
      }

    public class MediaFilter implements FileFilter
    {
          String[] strfilter=  filter.split(",");
          public MediaFilter() {}
          private boolean isOK(String file){
              for(int i=0;i<strfilter.length;i++){
                  if (file.toLowerCase().endsWith(strfilter[i])){
                      return true;
                    }
              }
              
              return false;
          }


          public boolean accept(File dir){
            return (isOK(dir.getName())||dir.isDirectory());          
              
          }

    }
   public void ListFile() {      
       
                try {
                    this.getAllFile(filepath);
                } catch (Exception e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
      
   }
   public void OutputFileList(){
       FileWriter f=null;
       try {
           f=new FileWriter(filepath+filetxt);
           
            for(int i=0;i<filelist.size();i++){
                f.write((String)filelist.get(i)+"/r/n");
            }
            f.flush();
            
               
        } catch (IOException e) {
            
            e.printStackTrace();
        }finally{
           try {
            f.close();
        } catch (IOException e) {
            
            e.printStackTrace();
        }
        }
   }
   
    
    public static void main(String[] args ){
        MediaFileProcess mfp=new MediaFileProcess("E:/");
        System.out.println(mfp.getFilepath());
        mfp.ListFile();  
        mfp.OutputFileList();
        //System.out.println(mfp.getFilelist().toString());
    }
    /**
     * @return the filepath
     */
    public String getFilepath() {
        return filepath;
    }
    /**
     * @param filepath the filepath to set
     */
    public void setFilepath(String filepath) {
        this.filepath = filepath;
    }
    /**
     * @return the filter
     */
    public String getFilter() {
        return filter;
    }
    /**
     * @param filter the filter to set
     */
    public void setFilter(String filter) {
        this.filter = filter;
    }
    /**
     * @return the filetxt
     */
    public String getFiletxt() {
        return filetxt;
    }
    /**
     * @param filetxt the filetxt to set
     */
    public void setFiletxt(String filetxt) {
        this.filetxt = filetxt;
    }
    
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值