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