管道基础大数据平台系统开发-【后端】-Server
1
13693261870
2022-10-31 5fe2473ba0e9f374da27e919fdce09b0915f5e51
src/main/java/com/lf/server/helper/FileHelper.java
@@ -1,7 +1,16 @@
package com.lf.server.helper;
import com.lf.server.entity.data.MetaFileEntity;
import com.lf.server.service.data.UploaderService;
import org.apache.commons.codec.digest.DigestUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import java.io.File;
import java.util.Date;
import java.io.FileInputStream;
import java.io.IOException;
import java.text.DecimalFormat;
import java.util.List;
/**
 * 文件帮助类
@@ -9,6 +18,26 @@
 */
public class FileHelper {
    private final static String POINT = ".";
    public static final double D1024 = 1024.0;
    public static final double D1050 = 1050.0;
    private final static Log log = LogFactory.getLog(FileHelper.class);
    /**
     * 获取文件名
     * @param file
     * @return
     */
    public static String getFileName(String file) {
        int idx = file.lastIndexOf(File.separator);
        if (idx > -1) {
            return file.substring(idx + 1);
        }
        return "";
    }
    /**
     * 获取文件扩展名
@@ -135,11 +164,63 @@
    }
    /**
     * 获取临时路径
     *
     * @return
     * 字节单位换算
     */
    public static String getTempPath() {
        return StringHelper.YMD_HM_FORMAT.format(new Date());
    public static String formatByte(long byteNumber) {
        double kbNumber = byteNumber / D1024;
        if (kbNumber < D1024) {
            return new DecimalFormat("#.##KB").format(kbNumber);
        }
        double mbNumber = kbNumber / D1024;
        if (mbNumber < D1024) {
            return new DecimalFormat("#.##MB").format(mbNumber);
        }
        double gbNumber = mbNumber / D1024;
        if (gbNumber < D1024) {
            return new DecimalFormat("#.##GB").format(gbNumber);
        }
        double tbNumber = gbNumber / D1024;
        return new DecimalFormat("#.##TB").format(tbNumber);
    }
    /**
     * byte转MB
     */
    public static double sizeToMb(long size) {
        if (size < D1050) {
            return 0.001;
        }
        String str = String.format("%.3f", size / D1024 / D1024);
        return Double.parseDouble(str);
    }
    /**
     * 获取文件 MD5 码
     */
    public static String getFileMd5(String filePath) throws IOException {
        FileInputStream fileStream = new FileInputStream(filePath);
        String md5 = DigestUtils.md5Hex(fileStream);
        fileStream.close();
        return md5;
    }
    /**
     * 删除文件
     */
    public static void deleteFiles(List<MetaFileEntity> list) {
        try {
            for (MetaFileEntity mf : list) {
                File f = new File(mf.getPath());
                if (f.exists()) {
                    f.delete();
                }
            }
        } catch (Exception ex) {
            log.error(ex.getMessage(), ex);
        }
    }
}