java檔案和檔案夾複製、刪除、移動操作

來源:互聯網
上載者:User
import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.FileWriter;import java.io.InputStream;import java.io.PrintWriter;public  class  CopyFile  {     public  CopyFile()  {     }      /**       *  建立目錄       *  @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);  //用來寫入字元檔案的便捷類, 在給出 File 對象的情況下構造一個 FileWriter 對象           PrintWriter  myFile  =  new  PrintWriter(resultFile);  //向文本輸出資料流列印對象的格式化表示形式,使用指定檔案建立不具有自動行重新整理的新 PrintWriter。           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[i]);             }             else  {                 temp  =  new  File(path  +  File.separator  +  tempList[i]);             }             if  (temp.isFile())  {                 temp.delete();             }             if  (temp.isDirectory())  {                 delAllFile(path+"/"+  tempList[i]);//先刪除檔案夾裡面的檔案                 delFolder(path+"/"+  tempList[i]);//再刪除空檔案夾             }         }     }      /**       *  複製單個檔案       *  @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[1444];  //               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[i]);                 }                 else{                     temp=new  File(oldPath+File.separator+file[i]);                 }                  if(temp.isFile()){                     FileInputStream  input  =  new  FileInputStream(temp);                     FileOutputStream  output  =  new  FileOutputStream(newPath  +  "/"  +                            (temp.getName()).toString());                     byte[]  b  =  new  byte[1024  *  5];                     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[i],newPath+"/"+file[i]);                 }             }         }         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);      }     public static void main(String[] args){    CopyFile file = new CopyFile();//    file.newFolder("newFolder22222");    file.delAllFile("E:/1");   }// 拷貝檔案   private void copyFile2(String source, String dest) {   try {   File in = new File(source);   File out = new File(dest);   FileInputStream inFile = new FileInputStream(in);   FileOutputStream outFile = new FileOutputStream(out);   byte[] buffer = new byte[10240];   int i = 0;   while ((i = inFile.read(buffer)) != -1) {   outFile.write(buffer, 0, i);   }//end while   inFile.close();   outFile.close();   }//end try   catch (Exception e) {   }//end catch   }//end copyFile}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.