123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161 |
- package com.lsw.commons.utils;
- import com.jfinal.core.JFinal;
- import java.io.File;
- import java.math.BigDecimal;
- import java.util.ArrayList;
- import java.util.List;
- /**
- * @author 李书文
- * @description 文件操作工具类
- * @time 2016年8月14日
- */
- public class FileUtil {
- /**
- * 文件/目录 重命名
- *
- * @param oldPath 原有路径(绝对路径)
- * @param newPath 更新路径
- */
- public static boolean renameFile(String oldPath, String newPath) {
- boolean success = false;
- File oldFile = new File(oldPath);// 文件或目录
- File newFile = new File(newPath);// 文件或目录
- try {
- success = oldFile.renameTo(newFile);// 重命名
- if (!success) {
- System.out.println("重命名失败");
- } else {
- System.out.println("重命名成功");
- }
- } catch (RuntimeException e) {
- e.printStackTrace();
- }
- return success;
- }
- /**
- * 删除单个文件
- *
- * @param Path 被删除文件的文件名
- * @return 单个文件删除成功返回true,否则返回false
- */
- public static boolean deleteFile(String Path) {
- boolean flag = false;
- File file = new File(Path);
- // 路径为文件且不为空则进行删除
- if (file.isFile() && file.exists()) {
- file.delete();
- flag = true;
- }
- return flag;
- }
- /**
- * 删除目录(文件夹)以及目录下的文件
- *
- * @param sPath 被删除目录的文件路径
- * @return 目录删除成功返回true,否则返回false
- */
- public static boolean deleteDirectory(String sPath) {
- boolean flag = false;
- // 如果sPath不以文件分隔符结尾,自动添加文件分隔符
- if (!sPath.endsWith(File.separator)) {
- sPath = sPath + File.separator;
- }
- File dirFile = new File(sPath);
- // 如果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;
- }
- }
- /**
- * 读取某个文件夹下的所有文件
- *
- * @param filepath 路径
- * @return
- */
- public static List<FileEntity> readfile(String filepath) {
- List<FileEntity> list = new ArrayList<FileEntity>();
- try {
- File file = new File(filepath);
- if (!file.isDirectory()) {
- System.out.println("文件");
- list.add(new FileEntity(file.getPath(), file.getName()));
- } else if (file.isDirectory()) {
- System.out.println("文件夹");
- String[] filelist = file.list();
- for (int i = 0; i < filelist.length; i++) {
- File readfile = new File(filepath + "\\" + filelist[i]);
- if (!readfile.isDirectory()) {
- list.add(new FileEntity(readfile.getPath(), readfile.getName()));
- } else if (readfile.isDirectory()) {
- readfile(filepath + "\\" + filelist[i]);
- }
- }
- }
- } catch (Exception e) {
- System.out.println("readfile() Exception:" + e.getMessage());
- }
- return list;
- }
- public static String getPrintSize(long size) {
- // 如果字节数少于1024,则直接以B为单位,否则先除于1024,后3位因太少无意义
- double value = (double) size;
- if (value < 1024) {
- return String.valueOf(value) + "B";
- } else {
- value = new BigDecimal(value / 1024).setScale(2, BigDecimal.ROUND_DOWN).doubleValue();
- }
- // 如果原字节数除于1024之后,少于1024,则可以直接以KB作为单位
- // 因为还没有到达要使用另一个单位的时候
- // 接下去以此类推
- if (value < 1024) {
- return String.valueOf(value) + "KB";
- } else {
- value = new BigDecimal(value / 1024).setScale(2, BigDecimal.ROUND_DOWN).doubleValue();
- }
- if (value < 1024) {
- return String.valueOf(value) + "MB";
- } else {
- // 否则如果要以GB为单位的,先除于1024再作同样的处理
- value = new BigDecimal(value / 1024).setScale(2, BigDecimal.ROUND_DOWN).doubleValue();
- return String.valueOf(value) + "GB";
- }
- }
- public static void main(String[] args) {
- boolean a= deleteFile("E:\\idea\\work2\\frcz_service\\src\\main\\webapp\\upload\\file\\网赚数据结构1.doc");
- System.out.println(a);
- }
- }
|