欢迎使用CSDN-markdown编辑器

来源:互联网 发布:如何下载bilibili mac 编辑:程序博客网 时间:2024/05/18 01:16

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;

//创建新文件和目录
public class FileDirUtil {
// 验证字符串是否为正确路径名的正则表达式
private static String matches = “[A-Za-z]:\\[^:?\”><]“;
// 通过 sPath.matches(matches) 方法的返回值判断是否正确
// sPath 为路径字符串
public static boolean flag = false;
public static File file;

public static boolean DeleteFolder(String deletePath) {// 根据路径删除指定的目录或文件,无论存在与否    flag = false;    if (deletePath.matches(matches)) {        file = new File(deletePath);        if (!file.exists()) {// 判断目录或文件是否存在            return flag; // 不存在返回 false        } else {            if (file.isFile()) {// 判断是否为文件                return deleteFile(deletePath);// 为文件时调用删除文件方法            } else {                return deleteDirectory(deletePath);// 为目录时调用删除目录方法            }        }    } else {        return false;    }}public static boolean deleteFile(String filePath) {// 删除单个文件    flag = false;    file = new File(filePath);    if (file.isFile() && file.exists()) {// 路径为文件且不为空则进行删除        file.delete();// 文件删除        flag = true;    }    return flag;}public static boolean deleteDirectory(String dirPath) {// 删除目录(文件夹)以及目录下的文件    // 如果sPath不以文件分隔符结尾,自动添加文件分隔符    if (!dirPath.endsWith(File.separator)) {        dirPath = dirPath + File.separator;    }    File dirFile = new File(dirPath);    // 如果dir对应的文件不存在,或者不是一个目录,则退出    if (!dirFile.exists() || !dirFile.isDirectory()) {        return false;    }    flag = true;    File[] files = dirFile.listFiles();// 获得传入路径下的所有文件    for (int i = 0; i < files.length; i++) {// 循环遍历删除文件夹下的所有文件(包括子目录)        if (files[i].isFile()) {// 删除子文件            flag = deleteFile(files[i].getAbsolutePath());            if (!flag)                break;// 如果删除失败,则跳出        } else {// 运用递归,删除子目录            flag = deleteDirectory(files[i].getAbsolutePath());            if (!flag)                break;// 如果删除失败,则跳出        }    }    if (!flag)        return false;    if (dirFile.delete()) {// 删除当前目录        return true;    } else {        return false;    }}// 创建单个文件public static boolean createFile(String filePath) {    File file = new File(filePath);    if (file.exists()) {// 判断文件是否存在        return false;    }    if (filePath.endsWith(File.separator)) {// 判断文件是否为目录        return false;    }    if (!file.getParentFile().exists()) {// 判断目标文件所在的目录是否存在        // 如果目标文件所在的文件夹不存在,则创建父文件夹        System.out.println("目标文件所在目录不存在,准备创建它!");        if (!file.getParentFile().mkdirs()) {// 判断创建目录是否成功            return false;        }    }    try {        if (file.createNewFile()) {// 创建目标文件            return true;        } else {            return false;        }    } catch (IOException e) {// 捕获异常        e.printStackTrace();        return false;    }}// 创建目录public static boolean createDir(String destDirName) {    File dir = new File(destDirName);    if (dir.exists()) {// 判断目录是否存在        return false;    }    if (!destDirName.endsWith(File.separator)) {// 结尾是否以"/"结束        destDirName = destDirName + File.separator;    }    if (dir.mkdirs()) {// 创建目标目录        return true;    } else {        return false;    }}// 创建临时文件public static String createTempFile(String prefix, String suffix,        String dirName) {    File tempFile = null;    if (dirName == null) {// 目录如果为空        try {            tempFile = File.createTempFile(prefix, suffix);// 在默认文件夹下创建临时文件            return tempFile.getCanonicalPath();// 返回临时文件的路径        } catch (IOException e) {// 捕获异常            e.printStackTrace();            return null;        }    } else {        // 指定目录存在        File dir = new File(dirName);// 创建目录        if (!dir.exists()) {            // 如果目录不存在则创建目录            if (CCRDFile.createDir(dirName)) {                return null;            }        }        try {            tempFile = File.createTempFile(prefix, suffix, dir);// 在指定目录下创建临时文件            return tempFile.getCanonicalPath();// 返回临时文件的路径        } catch (IOException e) {// 捕获异常            e.printStackTrace();            return null;        }    }}/** * 复制单个文件 * @param oldPath String 原文件路径  * @param newPath String 复制后路径 */ 

public static 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; //字节数 文件大小
fs.write(buffer, 0, byteread);
}
inStream.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}

/**
* 复制整个文件夹内容
* @param oldPath String 原文件路径
* @param newPath String 复制后路径
* @return boolean
*/
public static 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) {       e.printStackTrace();   } 

}

}

原创粉丝点击