java文件和文件夹复制、删除、移动操作

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
}
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值