Heim  >  Artikel  >  Java  >  Codebeispiel zum Erstellen eines Verzeichnisses (Verzeichnisse und Dateien löschen/ändern/kopieren) in Java

Codebeispiel zum Erstellen eines Verzeichnisses (Verzeichnisse und Dateien löschen/ändern/kopieren) in Java

高洛峰
高洛峰Original
2017-01-11 15:11:451366Durchsuche

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[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);
  } 
}

Weitere Codebeispiele zum Erstellen eines Verzeichnisses (Verzeichnisse und Dateien löschen/ändern/kopieren) mit Java finden Sie auf der chinesischen PHP-Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn