欢迎使用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(); }
}
}
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- centos 安装zookeeper
- Javascript 中call() , applay()理解
- mybatis-generator自动生成代码
- AngularJS(一)
- 新博客,新的开始,激励自己,稳步前进
- 欢迎使用CSDN-markdown编辑器
- 时间复杂度及空间复杂度
- 自定义画图的控件DrawView,可做草稿页面
- 接口-大学里的学生(Student)需要交学费,而研究生(Graduate)作为学生比较特殊,除了需要交学
- React Native Trying to resolve view with tag 518 which doesno't
- 【求助】winfrom怎么获取视频当前播放时间
- ijkplayer编译
- 点到线段的最短距离算法(转自 http://blog.sina.com.cn/s/blog_5d5c80840101bnhw.html)
- 深入理解javascript原型和闭包(完结)