From b2d2e6dcf6ec38a2f24721f2bc925d634a6eb78d Mon Sep 17 00:00:00 2001
From: mac <user@users-MacBook-Pro.local>
Date: 星期二, 05 十二月 2023 18:31:01 +0800
Subject: [PATCH] 2023年12月05日18:30:40

---
 app/src/main/java/com/hdl/photovoltaic/other/HdlFileLogic.java |  102 +++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 91 insertions(+), 11 deletions(-)

diff --git a/app/src/main/java/com/hdl/photovoltaic/other/HdlFileLogic.java b/app/src/main/java/com/hdl/photovoltaic/other/HdlFileLogic.java
index 69b3e95..66a7cec 100644
--- a/app/src/main/java/com/hdl/photovoltaic/other/HdlFileLogic.java
+++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlFileLogic.java
@@ -7,6 +7,8 @@
 import com.hdl.photovoltaic.HDLApp;
 import com.hdl.photovoltaic.config.UserConfigManage;
 
+import org.apache.commons.io.FileUtils;
+
 import java.io.BufferedInputStream;
 import java.io.BufferedOutputStream;
 import java.io.BufferedReader;
@@ -15,6 +17,8 @@
 import java.io.FileOutputStream;
 import java.io.InputStream;
 import java.io.InputStreamReader;
+import java.util.ArrayList;
+import java.util.List;
 import java.util.Objects;
 
 /**
@@ -96,7 +100,7 @@
     /**
      * 鑾峰彇銆愭棩蹇楁枃浠躲�戝叏璺緞
      */
-    public String getLogFilePath() {
+    public String getLogFileNamePath() {
         return getCurrentHomeRootPath() + "/log.txt";
     }
 
@@ -105,6 +109,30 @@
      */
     public String getUserFilePath() {
         return getAPPInternalStoreFilesPath() + "/userConfigManage.txt";
+    }
+
+    /**
+     * 鑾峰彇椹卞姩鍗囩骇鏂囦欢鍏ㄨ矾寰�
+     *
+     * @param driverCode 椹卞姩缂栫爜
+     * @param version    椹卞姩鐗堟湰
+     * @return 鍏ㄨ矾寰�
+     */
+    public String getDrivePathFileName(String driverCode, String version) {
+        String fileName = driverCode + "_" + version + ".zip";
+        return HdlFileLogic.getInstance().getDriveRootPath() + "/" + fileName;
+    }
+
+    /**
+     * 鑾峰彇鍥轰欢鍗囩骇鏂囦欢鍏ㄨ矾寰�
+     *
+     * @param oid
+     * @param version 椹卞姩鐗堟湰
+     * @return 鍏ㄨ矾寰�
+     */
+    public String getFirmwarePathFileName(String oid, String version) {
+        String fileName = oid + "_" + version + ".zip";
+        return HdlFileLogic.getInstance().getFirmwareRootPath() + "/" + fileName;
     }
 
     //endregion
@@ -230,7 +258,7 @@
      * @param fullPath 鍏ㄨ矾寰�
      * @param data     鏁版嵁
      */
-    public void writeFile(String fullPath, String data) {
+    public void writeFile(String fullPath, byte[] data) {
         try {
             File file = new File(fullPath);
             if (!file.exists()) {
@@ -240,7 +268,7 @@
                 }
             }
             FileOutputStream d = new FileOutputStream(file);
-            d.write(data.getBytes());
+            d.write(data);
             d.flush();
             d.close();
             System.out.println("鍐欏叆鏂囦欢鎴愬姛==" + fullPath);
@@ -248,6 +276,16 @@
             System.out.println("鍐欏叆鏂囦欢鏈夊紓甯�==" + e.getMessage());
         }
 
+    }
+
+    /**
+     * 鍐欏叆鏂囦欢
+     *
+     * @param fullPath 鍏ㄨ矾寰�
+     * @param data     鏁版嵁
+     */
+    public void writeFile(String fullPath, String data) {
+        writeFile(fullPath, data.getBytes());
     }
 
     /**
@@ -290,31 +328,73 @@
      * @param filePath 鍏ㄨ矾寰�
      * @return 鏁版嵁
      */
-    public String readFile(String filePath) {
+    public byte[] readFileByte(String filePath) {
         try {
             if (!isBoolean(filePath)) {
-                return "";
+                return null;
             }
-            String fileContent = "";
             File f = new File(filePath);
             if (!f.exists()) {
-                return fileContent;
+                return null;
             }
             FileInputStream fis = new FileInputStream(f);
-            byte[] bytes = new byte[fis.available()];
-            fis.read(bytes);
+            byte[] bytes = FileUtils.readFileToByteArray(f);
             fis.close();
             System.out.println("璇诲彇鏂囦欢鎴愬姛===" + filePath);
-            fileContent = new String(bytes);
-            return fileContent;
+            return bytes;
         } catch (Exception e1) {
             System.out.println("璇诲彇鏂囦欢鏈夊紓甯�===" + e1.getMessage());
+            return null;
+        }
+
+    }
+
+    /**
+     * 璇诲彇鏂囦欢
+     *
+     * @param filePath 鍏ㄨ矾寰�
+     * @return 鏁版嵁
+     */
+    public String readFile(String filePath) {
+        try {
+            byte[] bytes = readFileByte(filePath);
+            if (bytes == null) {
+                return "";
+            }
+            return new String(bytes);
+        } catch (Exception e1) {
             return "";
         }
 
     }
 
     /**
+     * 璇诲彇鏂囦欢
+     *
+     * @param filePath 鍏ㄨ矾寰�
+     * @return 鏁版嵁
+     */
+    public FileInputStream fileStream(String filePath) {
+        try {
+            if (!isBoolean(filePath)) {
+                return null;
+            }
+            File f = new File(filePath);
+            if (!f.exists()) {
+                return null;
+            }
+            fileLength = f.length();
+            return new FileInputStream(f);
+        } catch (Exception e1) {
+            System.out.println("璇诲彇鏂囦欢鏈夊紓甯�===" + e1.getMessage());
+            return null;
+        }
+
+    }
+
+    public static long fileLength = 0;
+
+    /**
      * 鎸囧畾鍒犻櫎鏂囦欢琛屾暟锛堜粠鍓嶉潰鍒犻櫎璧凤級
      *
      * @param filePath   璺緞

--
Gitblit v1.8.0