From d830fef6a2bc2ab061e6ac2b423c4a49dda3cf21 Mon Sep 17 00:00:00 2001
From: mac <user@users-MacBook-Pro.local>
Date: 星期三, 06 十二月 2023 18:08:26 +0800
Subject: [PATCH] 2023年12月06日18:08:20

---
 app/src/main/java/com/hdl/photovoltaic/other/HdlFileLogic.java |  138 +++++++++++++++++++++++++++++++++++++++------
 1 files changed, 119 insertions(+), 19 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 b0b7b8f..fc1faff 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;
 
 /**
@@ -25,7 +29,7 @@
     private static volatile HdlFileLogic sHdlFileLogic;
 
     /**
-     * 琛ㄧず1m鏁版嵁
+     * 琛ㄧず1m澶у皬鏁版嵁
      */
     private final int m = 1;
 
@@ -61,35 +65,74 @@
      * 鑾峰彇鎵嬫満鍐呴儴瀛樺偍鏂囦欢璺緞
      */
     public String getAPPInternalStoreFilesPath() {
-        return HDLApp.getInstance().getExternalFilesDir(Environment.DIRECTORY_DOCUMENTS).getPath();
+        return Objects.requireNonNull(HDLApp.getInstance().getExternalFilesDir(Environment.DIRECTORY_DOCUMENTS)).getPath();
     }
 
     /**
-     * 鑾峰彇瀛樻斁銆愮敤鎴枫�戞枃浠跺す鏍硅矾寰�
+     * 鑾峰彇瀛樻斁銆愮敤鎴锋枃浠跺す銆戞牴璺緞
      */
     public String getCurrentUserRootPath() {
         return getAPPInternalStoreFilesPath() + "/" + getUserId();
     }
 
     /**
-     * 鑾峰彇瀛樻斁銆愪綇瀹呫�戞枃浠跺す鏍硅矾寰�
+     * 鑾峰彇瀛樻斁銆愪綇瀹呮枃浠跺す銆戞牴璺緞
      */
     public String getCurrentHomeRootPath() {
         return getCurrentUserRootPath() + "/" + "home_" + getHomeId();
     }
 
     /**
-     * 鑾峰彇銆愭棩蹇椼�戞枃浠跺叏璺緞
+     * 鑾峰彇瀛樻斁銆愰┍鍔ㄦ枃浠跺す銆戞牴璺緞
      */
-    public String getLogFilePath() {
-        return getCurrentHomeRootPath() + "/Log.txt";
+    public String getDriveRootPath() {
+        return getAPPInternalStoreFilesPath() + "/upgrade/drive";
+    }
+
+
+    /**
+     * 鑾峰彇瀛樻斁銆愬浐浠舵枃浠跺す銆戞牴璺緞
+     */
+    public String getFirmwareRootPath() {
+        return getAPPInternalStoreFilesPath() + "/upgrade/firmware";
     }
 
     /**
-     * 鑾峰彇銆愮敤鎴枫�戞枃浠跺叏璺緞
+     * 鑾峰彇銆愭棩蹇楁枃浠躲�戝叏璺緞
+     */
+    public String getLogFileNamePath() {
+        return getCurrentHomeRootPath() + "/log.txt";
+    }
+
+    /**
+     * 鑾峰彇銆愮敤鎴锋枃浠躲�戝叏璺緞
      */
     public String getUserFilePath() {
-        return getAPPInternalStoreFilesPath() + "/UserConfigManage.txt";
+        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     璇ュ浐浠秓id
+     * @param version 椹卞姩鐗堟湰
+     * @return 鍏ㄨ矾寰�
+     */
+    public String getFirmwarePathFileName(String oid, String version) {
+        String fileName = oid + "_" + version + ".zip";
+        return HdlFileLogic.getInstance().getFirmwareRootPath() + "/" + fileName;
     }
 
     //endregion
@@ -102,6 +145,11 @@
     public void createDirectory() {
         //瀛樻斁浣忓畢淇℃伅
         this.createFileDir(this.getCurrentHomeRootPath());
+        //椹卞姩鏂囦欢
+        this.createFileDir(this.getDriveRootPath());
+        //鍥轰欢鏂囦欢
+        this.createFileDir(this.getFirmwareRootPath());
+
     }
 
     /**
@@ -210,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()) {
@@ -220,7 +268,7 @@
                 }
             }
             FileOutputStream d = new FileOutputStream(file);
-            d.write(data.getBytes());
+            d.write(data);
             d.flush();
             d.close();
             System.out.println("鍐欏叆鏂囦欢鎴愬姛==" + fullPath);
@@ -228,6 +276,16 @@
             System.out.println("鍐欏叆鏂囦欢鏈夊紓甯�==" + e.getMessage());
         }
 
+    }
+
+    /**
+     * 鍐欏叆鏂囦欢
+     *
+     * @param fullPath 鍏ㄨ矾寰�
+     * @param data     鏁版嵁
+     */
+    public void writeFile(String fullPath, String data) {
+        writeFile(fullPath, data.getBytes());
     }
 
     /**
@@ -270,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