From 0752b8900365704ba8d3e60a5afc66394628e2a4 Mon Sep 17 00:00:00 2001
From: mac <user@users-MacBook-Pro.local>
Date: 星期一, 18 十二月 2023 16:20:14 +0800
Subject: [PATCH] 2023年12月18日16:20:08
---
app/src/main/java/com/hdl/photovoltaic/other/HdlFileLogic.java | 139 ++++++++++++++++++++++++++++++++++++++++------
1 files changed, 120 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..a746b13 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,75 @@
* 鑾峰彇鎵嬫満鍐呴儴瀛樺偍鏂囦欢璺緞
*/
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 imageId 闀滃儚id
+ * @param version 椹卞姩鐗堟湰
+ * @return 鍏ㄨ矾寰�
+ */
+ public String getFirmwarePathFileName(String oid, String imageId, String version) {
+ String fileName = oid + "_" + imageId + "_" + version + ".zip";
+ return HdlFileLogic.getInstance().getFirmwareRootPath() + "/" + fileName;
}
//endregion
@@ -102,6 +146,11 @@
public void createDirectory() {
//瀛樻斁浣忓畢淇℃伅
this.createFileDir(this.getCurrentHomeRootPath());
+ //椹卞姩鏂囦欢
+ this.createFileDir(this.getDriveRootPath());
+ //鍥轰欢鏂囦欢
+ this.createFileDir(this.getFirmwareRootPath());
+
}
/**
@@ -210,7 +259,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 +269,7 @@
}
}
FileOutputStream d = new FileOutputStream(file);
- d.write(data.getBytes());
+ d.write(data);
d.flush();
d.close();
System.out.println("鍐欏叆鏂囦欢鎴愬姛==" + fullPath);
@@ -228,6 +277,16 @@
System.out.println("鍐欏叆鏂囦欢鏈夊紓甯�==" + e.getMessage());
}
+ }
+
+ /**
+ * 鍐欏叆鏂囦欢
+ *
+ * @param fullPath 鍏ㄨ矾寰�
+ * @param data 鏁版嵁
+ */
+ public void writeFile(String fullPath, String data) {
+ writeFile(fullPath, data.getBytes());
}
/**
@@ -270,31 +329,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