sunxin1001 发表于 2013-1-27 04:45:39

文件、文件夹 删除 复制 操作

import   java.io.*;   

public   class   FileOperate   {   
      public   FileOperate()   {   
      }   

      /**   
          *   新建目录   
          *   @param   folderPath   String   如   c:/fqf   
          *   @return   boolean   
          */   
      public   void   newFolder(String   folderPath)   {   
            try   {   
                      String   filePath   =   folderPath;   
                      filePath   =   filePath.toString();   
                      java.io.File   myFilePath   =   new   java.io.File(filePath);   
                      if   (!myFilePath.exists())   {   
                              myFilePath.mkdir();   
                      }   
            }   
            catch   (Exception   e)   {   
                      System.out.println( "新建目录操作出错 ");   
                      e.printStackTrace();   
            }   
      }   

      /**   
          *   新建文件   
          *   @param   filePathAndName   String   文件路径及名称   如c:/fqf.txt   
          *   @param   fileContent   String   文件内容   
          *   @return   boolean   
          */   
      public   void   newFile(String   filePathAndName,   String   fileContent)   {   

            try   {   
                      String   filePath   =   filePathAndName;   
                      filePath   =   filePath.toString();   
                      File   myFilePath   =   new   File(filePath);   
                      if   (!myFilePath.exists())   {   
                              myFilePath.createNewFile();   
                      }   
                      FileWriter   resultFile   =   new   FileWriter(myFilePath);   
                      PrintWriter   myFile   =   new   PrintWriter(resultFile);   
                      String   strContent   =   fileContent;   
                      myFile.println(strContent);   
                      resultFile.close();   

            }   
            catch   (Exception   e)   {   
                      System.out.println( "新建目录操作出错 ");   
                      e.printStackTrace();   

            }   

      }   

      /**   
          *   删除文件   
          *   @param   filePathAndName   String   文件路径及名称   如c:/fqf.txt   
          *   @param   fileContent   String   
          *   @return   boolean   
          */   
      public   void   delFile(String   filePathAndName)   {   
            try   {   
                      String   filePath   =   filePathAndName;   
                      filePath   =   filePath.toString();   
                      java.io.File   myDelFile   =   new   java.io.File(filePath);   
                      myDelFile.delete();   

            }   
            catch   (Exception   e)   {   
                      System.out.println( "删除文件操作出错 ");   
                      e.printStackTrace();   

            }   

      }   

      /**   
          *   删除文件夹   
          *   @param   filePathAndName   String   文件夹路径及名称   如c:/fqf   
          *   @param   fileContent   String   
          *   @return   boolean   
          */   
      public   void   delFolder(String   folderPath)   {   
            try   {   
                      delAllFile(folderPath);   //删除完里面所有内容   
                      String   filePath   =   folderPath;   
                      filePath   =   filePath.toString();   
                      java.io.File   myFilePath   =   new   java.io.File(filePath);   
                      myFilePath.delete();   //删除空文件夹   

            }   
            catch   (Exception   e)   {   
                      System.out.println( "删除文件夹操作出错 ");   
                      e.printStackTrace();   

            }   

      }   

      /**   
          *   删除文件夹里面的所有文件   
          *   @param   path   String   文件夹路径   如   c:/fqf   
          */   
      public   void   delAllFile(String   path)   {   
            File   file   =   new   File(path);   
            if   (!file.exists())   {   
                      return;   
            }   
            if   (!file.isDirectory())   {   
                      return;   
            }   
            String[]   tempList   =   file.list();   
            File   temp   =   null;   
            for   (int   i   =   0;   i   <   tempList.length;   i++)   {   
                      if   (path.endsWith(File.separator))   {   
                              temp   =   new   File(path   +   tempList);   
                      }   
                      else   {   
                              temp   =   new   File(path   +   File.separator   +   tempList);   
                      }   
                      if   (temp.isFile())   {   
                              temp.delete();   
                      }   
                      if   (temp.isDirectory())   {   
                              delAllFile(path+ "/ "+   tempList);//先删除文件夹里面的文件   
                              delFolder(path+ "/ "+   tempList);//再删除空文件夹   
                      }   
            }   
      }   

      /**   
          *   复制单个文件   
          *   @param   oldPath   String   原文件路径   如:c:/fqf.txt   
          *   @param   newPath   String   复制后路径   如:f:/fqf.txt   
          *   @return   boolean   
          */   
      public   void   copyFile(String   oldPath,   String   newPath)   {   
            try   {   
                      int   bytesum   =   0;   
                      int   byteread   =   0;   
                      File   oldfile   =   new   File(oldPath);   
                      if   (oldfile.exists())   {   //文件存在时   
                              InputStream   inStream   =   new   FileInputStream(oldPath);   //读入原文件   
                              FileOutputStream   fs   =   new   FileOutputStream(newPath);   
                              byte[]   buffer   =   new   byte;   
                              int   length;   
                              while   (   (byteread   =   inStream.read(buffer))   !=   -1)   {   
                                    bytesum   +=   byteread;   //字节数   文件大小   
                                    System.out.println(bytesum);   
                                    fs.write(buffer,   0,   byteread);   
                              }   
                              inStream.close();   
                      }   
            }   
            catch   (Exception   e)   {   
                      System.out.println( "复制单个文件操作出错 ");   
                      e.printStackTrace();   

            }   

      }   

      /**   
          *   复制整个文件夹内容   
          *   @param   oldPath   String   原文件路径   如:c:/fqf   
          *   @param   newPath   String   复制后路径   如:f:/fqf/ff   
          *   @return   boolean   
          */   
      public   void   copyFolder(String   oldPath,   String   newPath)   {   

            try   {   
                      (new   File(newPath)).mkdirs();   //如果文件夹不存在   则建立新文件夹   
                      File   a=new   File(oldPath);   
                      String[]   file=a.list();   
                      File   temp=null;   
                      for   (int   i   =   0;   i   <   file.length;   i++)   {   
                              if(oldPath.endsWith(File.separator)){   
                                    temp=new   File(oldPath+file);   
                              }   
                              else{   
                                    temp=new   File(oldPath+File.separator+file);   
                              }   

                              if(temp.isFile()){   
                                    FileInputStream   input   =   new   FileInputStream(temp);   
                                    FileOutputStream   output   =   new   FileOutputStream(newPath   +   "/ "   +   
                                                      (temp.getName()).toString());   
                                    byte[]   b   =   new   byte;   
                                    int   len;   
                                    while   (   (len   =   input.read(b))   !=   -1)   {   
                                              output.write(b,   0,   len);   
                                    }   
                                    output.flush();   
                                    output.close();   
                                    input.close();   
                              }   
                              if(temp.isDirectory()){//如果是子文件夹   
                                    copyFolder(oldPath+ "/ "+file,newPath+ "/ "+file);   
                              }   
                      }   
            }   
            catch   (Exception   e)   {   
                      System.out.println( "复制整个文件夹内容操作出错 ");   
                      e.printStackTrace();   

            }   

      }   

      /**   
          *   移动文件到指定目录   
          *   @param   oldPath   String   如:c:/fqf.txt   
          *   @param   newPath   String   如:d:/fqf.txt   
          */   
      public   void   moveFile(String   oldPath,   String   newPath)   {   
            copyFile(oldPath,   newPath);   
            delFile(oldPath);   

      }   

      /**   
          *   移动文件到指定目录   
          *   @param   oldPath   String   如:c:/fqf.txt   
          *   @param   newPath   String   如:d:/fqf.txt   
          */   
      public   void   moveFolder(String   oldPath,   String   newPath)   {   
            copyFolder(oldPath,   newPath);   
            delFolder(oldPath);   

      }   
}
页: [1]
查看完整版本: 文件、文件夹 删除 复制 操作