现在的位置: 首页 > 综合 > 正文

在java程序中怎样在磁盘上创建目录和删除目录

2013年12月06日 ⁄ 综合 ⁄ 共 5205字 ⁄ 字号 评论关闭
import   java.io.*;  
  import   java.util.*;  
   
  public   class   FileOperator  
  {  
          public   FileOperator()   {   }  
           
          /**  
          *     功 能:   移动文件(只能移动文件)  
          *     参 数:   strSourceFileName:指定的文件全路径名  
          *                     strDestDir:               移动到指定的文件夹  
          *     返回值:   如果成功true;否则false  
          */  
          public   boolean   copyTo(String   strSourceFileName,    
                                                      String   strDestDir)  
          {  
                  File   fileSource   =   new   File(strSourceFileName);  
                  File   fileDest       =   new   File(strDestDir);  
                   
                  //   如果源文件不存或源文件是文件夹  
                  if   (!fileSource.exists()   ||   !fileSource.isFile())   {  
                          System.out.println("错误:   FileOperator.java   copyTo函数,/n原因:   源文件["   +   strSourceFileName   +   "],不存在或是文件夹!");  
                          return   false;  
                  }  
                   
                  //   如果目标文件夹不存在  
                  if   (!fileDest.isDirectory()   ||   !fileDest.exists())   {  
                          if   (!fileDest.mkdirs())   {  
                                  System.out.println("错误:   FileOperator.java   copyTo函数,/n原因:目录文件夹不存,在创建目标文件夹时失败!");  
                                  return   false;  
                          }  
                  }  
                   
                  try   {  
                          String   strAbsFilename   =   strDestDir   +   File.separator   +   fileSource.getName();  
                           
                          FileInputStream           fileInput     =   new   FileInputStream(strSourceFileName);  
                          FileOutputStream         fileOutput   =   new   FileOutputStream(strAbsFilename);  
                           
                          //System.out.println("开始拷贝文件:");  
                           
                          int           i                       =   0;  
                          int           count               =   -1;  
                           
                          long         nWriteSize     =   0;  
                          long         nFileSize       =   fileSource.length();  
                           
                          byte[]     data                 =   new   byte[BUFFER];  
                           
                          //System.out.println("FILE   NAME   /t/t   FILE   SIZE");  
                          System.out.println(fileSource.getName()   +   "/t/t"   +   nFileSize   +   "   byte");  
                           
                          while   (-1   !=   (count   =   fileInput.read(data,   0,   BUFFER)))   {  
                               
                                  fileOutput.write(data,   0,   count);  
                                   
                                  nWriteSize   +=   count;  
                                   
                                  long   size       =   (nWriteSize   *   100)/nFileSize;  
                                  long   t             =   nWriteSize;  
                                   
                                  String   msg   =   null;  
                                   
                                  if   (size   <=   100   &&   size   >=   0)   {  
                                          msg   =   "/r拷贝文件进度:   "   +   size   +   "%   /t"   +   "/t   已拷贝:   "   +   t;  
                                          System.out.print(msg);  
                                  }   else   if   (size   >   100)   {  
                                          msg   =   "/r拷贝文件进度:   "   +   100   +   "%   /t"   +   "/t   已拷贝:   "   +   t;  
                                          System.out.print(msg);  
                                  }  
                               
                          }  
                           
                          fileInput.close();  
                          fileOutput.close();  
                           
                          System.out.println("/n拷贝文件成功!");  
                          return   true;  
                           
                  }   catch(Exception   e)   {  
 System.out.println("异常信息:[");  
                          e.printStackTrace();  
                          System.out.println("异常信息:]");  
                          return   false;  
                  }  
          }  
           
          /**  
          *   功     能:   删除指定的文件  
          *   参     数:   指定绝对路径的文件名   strFileName  
          *   返回值:   如果删除成功true否则false;  
          */  
          public   boolean   delete(String   strFileName)  
          {  
                  File   fileDelete   =   new   File(strFileName);  
                   
                  if   (!fileDelete.exists()   ||   !fileDelete.isFile())   {  
                          System.out.println("错误:   "   +   strFileName   +   "不存在!");  
                          return   false;  
                  }  
                   
                  return   fileDelete.delete();  
          }  
           
          /**  
            *     功 能:   移动文件(只能移动文件)  
            *     参 数:   strSourceFileName:     是指定的文件全路径名  
            *                     strDestDir:                   移动到指定的文件夹中  
            *     返回值:   如果成功true;               否则false  
            */  
          public   boolean   moveFile(String   strSourceFileName,    
                                                          String   strDestDir)  
          {  
                  if   (copyTo(strSourceFileName,   strDestDir))  
                          return   this.delete(strSourceFileName);  
                  else  
                          return   false;  
          }  
           
          /**  
            *     功 能:   创建文件夹  
            *     参 数:   strDir             要创建的文件夹名称  
            *     返回值:   如果成功true;否则false  
            */  
          public   boolean   makedir(String   strDir)  
          {  
                  File   fileNew   =   new   File(strDir);  
                   
                  if   (!fileNew.exists())  
                          return   fileNew.mkdirs();  
                  else  
                          return   true;  
          }  
           
          /**  
            *     功 能:   删除文件夹  
            *     参 数:   strDir             要删除的文件夹名称  
            *     返回值:   如果成功true;否则false  
            */  
          public   boolean   rmdir(String   strDir)  
          {  
                  File   rmDir   =   new   File(strDir);  
                  if   (rmDir.isDirectory()   &&   rmDir.exists())   {  
                          String[]   fileList       =   rmDir.list();  
                           
                          int             size               =   fileList.length;  
                          for   (int   i   =   0;   i   <   fileList.length;   i++)   {  
                                  String     subFile   =   strDir   +   File.separator   +   fileList[i];  
                                  File         tmp           =   new   File(subFile);  
                                  if   (tmp.isFile())                       tmp.delete();    
                                  else   if   (tmp.isDirectory())   rmdir(subFile);  
                                  else                                                 System.out.println("error!");  
                          }  
                          rmDir.delete();  
                  }   else   return   false;  
                  return   true;  
          }          
           
          //   member   variable  
           
          private   final   int   BUFFER   =   1024;  
           
          //   member   variable  
  }  
   
  class   Test  
  {  
          public   static   void   main(String[]   args)  
          {  
   
          }  
  }

抱歉!评论已关闭.