| | |
| | | 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.io.FileInputStream; |
| | | import java.io.IOException; |
| | | import java.text.DecimalFormat; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * 文件帮助类 |
| | |
| | | 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 ""; |
| | | } |
| | | |
| | | /** |
| | | * 获取文件扩展名 |
| | | * |
| | | * @param file 文件 |
| | | * @return |
| | | */ |
| | | public static String getExtension(File file) { |
| | | if (file == null) { |
| | |
| | | return fileName.substring(idx); |
| | | } |
| | | |
| | | /** |
| | | * 获取文件扩展名 |
| | | */ |
| | | public static String getExtension(String fileName) { |
| | | if (StringHelper.isEmpty(fileName)) { |
| | | return ""; |
| | | } |
| | | |
| | | int idx = fileName.lastIndexOf(POINT); |
| | | if (idx == -1) { |
| | | return ""; |
| | | } |
| | | |
| | | return fileName.substring(idx).toLowerCase(); |
| | | } |
| | | |
| | | /** |
| | | * 获取多用途互联网邮件扩展类型 |
| | |
| | | return "application/octet-stream"; |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 字节单位换算 |
| | | */ |
| | | 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); |
| | | } |
| | | } |
| | | } |