分享

java 文件操作集

 小朋 2006-10-31
一.用java删除含有文件的文件夹
 public   static   boolean   deletefile(String   delpath)   throws   FileNotFoundException,  
              IOException   {  
          try   {  
              File   file   =   new   File(delpath);  
              if   (!file.isDirectory())   {  
                  file.delete();  
              }  
              else   if   (file.isDirectory())   {  
                  String[]   filelist   =   file.list();  
                  for   (int   i   =   0;   i   <   filelist.length;   i++)   {  
                      File   delfile   =   new   File(delpath   +   "\\"   +   filelist[i]);  
                      if   (!delfile.isDirectory())  
                          delfile.delete();  
                      else   if   (delfile.isDirectory())  
                          deletefile(delpath   +   "\\"   +   filelist[i]);  
                  }  
                  file.delete();  
              }  
          }  
          catch   (FileNotFoundException   e)   {  
              Log.debug("deletefile()   Exception:"   +   e.getMessage());  
          }  
          return   true;  
      } 

二、Java删除旧文件的方法

   

/**
 * 删除旧文件的方法(这个方法将删除文件夹中10分钟以前的文件)
 * @param strOldFilePath 文件目录(路径)
 */


public void deleteOldFile(String strOldFilePath)
{
          
    File  dirFile = new File(strOldFilePath);

    if( dirFile.exists() == true )
    {
        java.util.Date nowDate= new java.util.Date(System.currentTimeMillis());

        java.io.File[] vFileList = (new File(strOldImageFilePath)).listFiles();
    
        for(int iIndex=0;iIndex<vFileList.length;iIndex++)
        {
            //删除10分钟前的文件 10分钟 = 60*10*1000 = 600000ms(毫秒)
            if(nowDate.getTime()-new java.util.Date(vFileList[iIndex].lastModified()).getTime()>6000000)
            {
                vFileList[iIndex].delete();
            }
        }
    }
}

 

/*
 *(附) 几个时间函数说明
 *File.lastModified()方法返回文件最后一次更改的时间
 *Date.getTime 方法返回一个整数值
 *这个整数代表了从 1970年1月1日 开始计算到 Date对象中的时间之间的毫秒数。
 *日期的范围大约是 1970年1月1日 午夜的前后各285,616年。负数代表 1970 年之前的日期。
 *exists()方法用于判断文件是否存在
 *listFiles() 方法返回(目录下)所有文件名
 *System.currentTimeMillis()此方法以毫秒为单位返回当前时间和 UTC1970年1月1日午夜之间的差值
 *java.util.Date(System.currentTimeMillis())得到的是系统当前时间
 */

三、java删除文件及目录
    java中删除目录事先要删除目录下的文件或子目录。用递归就可以实现。这是我第一个用到算法作的程序,哎看来没白学。
public void del(String filepath) throws IOException{
File f = new File(filepath);//定义文件路径       
if(f.exists() && f.isDirectory()){//判断是文件还是目录
    if(f.listFiles().length==0){//若目录下没有文件则直接删除
        f.delete();
    }else{//若有则把文件放进数组,并判断是否有下级目录
        File delFile[]=f.listFiles();
        int i =f.listFiles().length;
        for(int j=0;j<i;j++){
            if(delFile[j].isDirectory()){
                      del(delFile[j].getAbsolutePath());//递归调用del方法并取得子目录路径
            }
            delFile[j].delete();//删除文件
        }
    }
    del(filepath);//递归调用
}
       
}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多