Browse Source

增加fileUtil

xusl 3 năm trước cách đây
mục cha
commit
5105d5ff22

+ 263 - 0
ipfcst-console/src/main/java/com/jiayue/ipfcst/fileupload/util/FileUtil.java

@@ -0,0 +1,263 @@
+package com.jiayue.ipfcst.fileupload.util;
+
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.io.FileUtils;
+import org.springframework.util.ResourceUtils;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import java.nio.file.Files;
+import java.nio.file.LinkOption;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.nio.file.attribute.BasicFileAttributeView;
+import java.nio.file.attribute.BasicFileAttributes;
+import java.security.MessageDigest;
+import java.util.Date;
+
+/**
+ * 文件工具类
+ *
+ * @author xsl
+ * @version 3.0
+ */
+@Slf4j
+public class FileUtil {
+  /**
+   * 移动本地文件
+   *
+   * @param remoteAbsoluteFile 远程文件名(包括完整路径)
+   * @param localAbsoluteFile  本地文件名(包括完整路径)
+   * @return 成功时,返回true,失败返回false
+   * @throws Exception
+   */
+  public static void move(String localAbsoluteFile, String remoteAbsoluteFile) throws Exception {
+    File srcFile = new File(localAbsoluteFile);
+    File destDir = new File(remoteAbsoluteFile);
+    try {
+      if (!destDir.exists()) {// 如果目录不存在则创建目录
+        boolean b = destDir.mkdirs();
+        if (!b) // 如果创建失败则抛出异常
+          throw new RuntimeException(destDir + " 目录创建失败");
+      }
+      FileUtils.moveFile(srcFile, new File(remoteAbsoluteFile + File.separator + srcFile.getName()));
+    } catch (IOException e) {
+      throw new Exception("文件:" + srcFile.getName() + "移动到" + destDir.getPath() + "失败。", e);
+    }
+  }
+
+  //文件内容md5加密
+  public static String getMD5(byte[] fileByte) {
+    String md5 = new String();
+    try {
+      MessageDigest md = MessageDigest.getInstance("MD5");
+      md.update(fileByte);
+      byte b[] = md.digest();
+
+      int i;
+
+      StringBuffer buf = new StringBuffer("");
+      for (int offset = 0; offset < b.length; offset++) {
+        i = b[offset];
+        if (i < 0)
+          i += 256;
+        if (i < 16)
+          buf.append("0");
+        buf.append(Integer.toHexString(i));
+      }
+
+      md5 = buf.toString();
+
+    } catch (Exception e) {
+      e.printStackTrace();
+    }
+    return md5;
+  }
+
+  /**
+   * 获取文件创建时间
+   *
+   * @param fullFileName
+   * @return
+   */
+  public static Long getFileCreateTime(String fullFileName) {
+    Path path = Paths.get(fullFileName);
+    BasicFileAttributeView basicview = Files.getFileAttributeView(path, BasicFileAttributeView.class, LinkOption.NOFOLLOW_LINKS);
+    BasicFileAttributes attr;
+    try {
+      attr = basicview.readAttributes();
+      Date createDate = new Date(attr.creationTime().toMillis());
+      return createDate.getTime();
+    } catch (Exception e) {
+      e.printStackTrace();
+    }
+    return new Date().getTime();
+  }
+
+  /**
+   * 获取项目根路径
+   *
+   * @return
+   */
+  public static String getResourceBasePath() {
+    // 获取跟目录
+    File path = null;
+    try {
+      path = new File(ResourceUtils.getURL("classpath:").getPath());
+
+    } catch (FileNotFoundException e) {
+      // nothing to do
+    }
+    if (path == null || !path.exists()) {
+      path = new File("");
+    }
+
+    String pathStr = path.getAbsolutePath();
+    try {
+      pathStr = URLDecoder.decode(pathStr, "UTF-8");
+    } catch (UnsupportedEncodingException e) {
+      e.printStackTrace();
+    }
+    // 如果是在eclipse中运行,则和target同级目录,如果是jar部署到服务器,则默认和jar包同级
+//    pathStr = pathStr.replace("\\target\\classes", "");
+
+    return pathStr;
+  }
+
+  /**
+   * 获取上报文件目录相对路径
+   *
+   * @return
+   */
+  public static String getFileUploadPath() {
+    return createUploadAllDir("uploadFile");
+  }
+
+  /**
+   * 获取下载文件目录相对路径
+   *
+   * @return
+   */
+  public static String getDownloadFilePath() {
+    return createUploadAllDir("downloadFile");
+  }
+
+  /**
+   * 获取下载文件目录相对路径
+   *
+   * @return
+   */
+  public static String getZxglFilePath() {
+    return createUploadAllDir("zxgl");
+  }
+
+  /**
+   * 获取日志目录相对路径
+   *
+   * @return
+   */
+  public static String getLogsPath() {
+    return createUploadAllDir("logs");
+  }
+
+  /**
+   * 获取系统脚本相对路径
+   *
+   * @return
+   */
+  public static String getBinPath() {
+    return createUploadAllDir("bin");
+  }
+
+  /**
+   * 程序备份相对路径
+   *
+   * @return
+   */
+  public static String getOriginalPath() {
+    return createUploadAllDir("original");
+  }
+
+  /**
+   * 系统资料相对路径
+   *
+   * @return
+   */
+  public static String getSystemFilePath() {
+    return createUploadAllDir("systemFile");
+  }
+
+  /**
+   * 获取被删除文件目录
+   *
+   * @return 路径
+   */
+  public static String getDeleteFilePath() {
+    return createUploadAllDir("deleteFile");
+  }
+
+  /**
+   * 程序运行相对路径
+   *
+   * @return
+   */
+  public static String getProducePath() {
+    return createUploadAllDir("produce");
+  }
+
+  /**
+   * 报表相对路径
+   *
+   * @return
+   */
+  public static String getreportFormPath() {
+    return createUploadAllDir("reportForm");
+  }
+
+  /**
+   * 获取临时文件目录相对路径
+   *
+   * @return
+   */
+  public static String getTempFilePath() {
+    return createUploadAllDir("tempFile");
+  }
+
+  public static String getE46Path() {
+    return createUploadAllDir("HN");
+  }
+
+  private static String createUploadAllDir(String dir) {
+    String path = "";
+    if (System.getProperties().getProperty("file.separator").equals("\\")) {
+      path = new File(getResourceBasePath()).getParentFile().getParentFile().getParentFile().getAbsolutePath() + File.separator + dir;
+      try {
+        path = URLDecoder.decode(path, "UTF-8");
+      } catch (UnsupportedEncodingException e) {
+        e.printStackTrace();
+      }
+      File file = new File(path);
+      if (!file.exists()) {
+        boolean b = file.mkdirs();
+        if (!b)
+          log.error("目录创建失败" + path);
+      }
+    }
+    else{
+      path = "/home/syjy/ipfcstV3/"+ dir;
+    }
+    return path;
+  }
+
+  /**
+   * 获取环境数据导出文件目录相对路径
+   *
+   * @return
+   */
+  public static String getEnvironmentalDataFile() {
+    return createUploadAllDir("environmentalDataFile");
+  }
+}