From 4db3692de0001eea35f938c1224181746e72933a Mon Sep 17 00:00:00 2001
From: wjc <1243177876@qq.com>
Date: 星期四, 27 十一月 2025 21:30:07 +0800
Subject: [PATCH] 支持创建阿拉伯语言的脚本文件夹
---
app/src/main/java/com/hdl/photovoltaic/other/HdlFileLogic.java | 223 ++++++++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 179 insertions(+), 44 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 012a181..4f91804 100644
--- a/app/src/main/java/com/hdl/photovoltaic/other/HdlFileLogic.java
+++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlFileLogic.java
@@ -1,11 +1,20 @@
package com.hdl.photovoltaic.other;
+import android.content.Context;
+import android.content.res.AssetManager;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Environment;
+import android.text.TextUtils;
import com.hdl.photovoltaic.HDLApp;
+import com.hdl.photovoltaic.config.ConstantManage;
import com.hdl.photovoltaic.config.UserConfigManage;
+import com.hdl.photovoltaic.enums.Languages;
+import com.hdl.photovoltaic.ui.adapter.LanguageAdapter;
+import com.hdl.photovoltaic.utils.LocalManageUtil;
+
+import org.apache.commons.io.FileUtils;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
@@ -13,9 +22,9 @@
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
+import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
-import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
@@ -27,9 +36,9 @@
private static volatile HdlFileLogic sHdlFileLogic;
/**
- * 琛ㄧず1m澶у皬鏁版嵁
+ * 琛ㄧず0.5m澶у皬鏁版嵁
*/
- private final int m = 1;
+ private final double mDataSize = 0.5;
/**
* 鑾峰彇褰撳墠瀵硅薄
@@ -81,7 +90,7 @@
}
/**
- * 鑾峰彇瀛樻斁銆愰┍鍔ㄦ枃浠跺す銆戞牴璺緞
+ * 鑾峰彇瀛樻斁椹卞姩銆愭枃浠跺す銆戞牴璺緞
*/
public String getDriveRootPath() {
return getAPPInternalStoreFilesPath() + "/upgrade/drive";
@@ -89,36 +98,75 @@
/**
- * 鑾峰彇瀛樻斁銆愬浐浠舵枃浠跺す銆戞牴璺緞
+ * 鑾峰彇瀛樻斁鍥轰欢銆愭枃浠跺す銆戞牴璺緞
*/
public String getFirmwareRootPath() {
return getAPPInternalStoreFilesPath() + "/upgrade/firmware";
}
+
/**
- * 鑾峰彇銆愭棩蹇楁枃浠躲�戝叏璺緞
+ * 鑾峰彇json璧勬簮銆愭枃浠跺す銆戝叏璺緞
+ *
+ * @param language 璇█ 閫氳繃鏋氫妇绫籐anguages.en鑾峰彇
+ * @param deviceModel 璁惧鍨嬪彿
+ */
+ public String getHdlESLocalJsonRootPath(String language, String deviceModel) {
+ return getAPPInternalStoreFilesPath() + "/hdlESLocalJson/" + language + "/" + deviceModel;
+ }
+
+
+ /**
+ * 鑾峰彇鏃ュ織銆愭枃浠躲�戝叏璺緞
*/
public String getLogFileNamePath() {
return getCurrentHomeRootPath() + "/log.txt";
}
+
/**
- * 鑾峰彇銆愮敤鎴锋枃浠躲�戝叏璺緞
+ * 鑾峰彇鐢ㄦ埛銆愭枃浠躲�戝叏璺緞
*/
public String getUserFilePath() {
return getAPPInternalStoreFilesPath() + "/userConfigManage.txt";
}
/**
- * 鑾峰彇椹卞姩鍗囩骇鏂囦欢鍏ㄨ矾寰�
+ * 鑾峰彇鏈湴璇█json璧勬簮銆愭枃浠躲�戝叏璺緞
+ *
+ * @param language 璇█ 閫氳繃鏋氫妇绫籐anguages.en鑾峰彇
+ * @param deviceModel 璁惧鍨嬪彿
+ * @param fileName 鏂囦欢鍚�
+ */
+ public String getHdlESLocalLanguageJsonFilePath(String language, String deviceModel, String fileName) {
+ if (!fileName.endsWith(".json")) {
+ fileName += ".json";
+ }
+ return getAPPInternalStoreFilesPath() + "/hdlESLocalJson/" + language + "/" + deviceModel + "/" + fileName;
+ }
+
+ /**
+ * 鑾峰彇椹卞姩鍗囩骇銆愭枃浠躲�戝叏璺緞
*
* @param driverCode 椹卞姩缂栫爜
* @param version 椹卞姩鐗堟湰
* @return 鍏ㄨ矾寰�
*/
public String getDrivePathFileName(String driverCode, String version) {
- String driverFileName = driverCode + "_" + version + ".zip";
- return HdlFileLogic.getInstance().getDriveRootPath() + "/" + driverFileName;
+ String fileName = driverCode + "_" + version + ".zip";
+ return HdlFileLogic.getInstance().getDriveRootPath() + "/" + fileName;
+ }
+
+ /**
+ * 鑾峰彇鍥轰欢鍗囩骇銆愭枃浠躲�戝叏璺緞
+ *
+ * @param imageId 闀滃儚id
+ * @param version 椹卞姩鐗堟湰
+ * @return 鍏ㄨ矾寰�
+ */
+ public String getFirmwarePathFileName(String imageId, String version) {
+ String fileName = imageId + "_" + version + ".zip";
+ return HdlFileLogic.getInstance().getFirmwareRootPath() + "/" + fileName;
}
//endregion
@@ -126,7 +174,7 @@
//region ---------銆愭枃浠跺す銆戞搷浣�-----------
/**
- * 棰勫垱寤烘枃浠跺す
+ * 棰勫垱寤恒�愭枃浠跺す銆�
*/
public void createDirectory() {
//瀛樻斁浣忓畢淇℃伅
@@ -135,11 +183,26 @@
this.createFileDir(this.getDriveRootPath());
//鍥轰欢鏂囦欢
this.createFileDir(this.getFirmwareRootPath());
+ }
+
+ /**
+ * 棰勫垱寤鸿澶噅son璧勬簮銆愭枃浠跺す銆�
+ */
+ public void createHdlDeviceModelLocalJsonDirectory() {
+ List<LanguageAdapter.ItemData> languageList = LocalManageUtil.getLanguageList();
+ List<String> deviceModelList = HdlESLocalJsonLogic.getInstance().getModelList();
+ for (int i = 0; i < languageList.size(); i++) {
+ LanguageAdapter.ItemData languageModel = languageList.get(i);
+ for (int j = 0; j < deviceModelList.size(); j++) {
+ String deviceModel = deviceModelList.get(j);
+ this.createFileDir(this.getHdlESLocalJsonRootPath(languageModel.getLanguage(), deviceModel));//骞剁綉-閫嗗彉鍣�
+ }
+ }
}
/**
- * 鍒涘缓鏂囦欢澶�
+ * 鍒涘缓銆愭枃浠跺す銆�
*
* @param fullPath fullPath 鍏ㄨ矾寰�
* @return -
@@ -149,7 +212,7 @@
File file = new File(fullPath);
if (!file.isDirectory()) {
boolean succeed = file.mkdirs();
- System.out.println("鍒涘缓鏂囦欢澶硅矾寰�=" + file.getAbsolutePath() + "->->鍒涘缓鏂囦欢澶圭粨鏋�=" + succeed);
+ System.out.println("鍒涘缓鏂囦欢澶硅矾寰�---" + file.getAbsolutePath() + "===鍒涘缓鏂囦欢澶圭粨鏋�---" + succeed);
return succeed;
}
return true;
@@ -161,7 +224,7 @@
/**
- * 鍒犻櫎鏂囦欢澶�
+ * 鍒犻櫎銆愭枃浠跺す銆�
*
* @param fullPath 鍏ㄨ矾寰�
*/
@@ -182,7 +245,7 @@
}
// 鍒犻櫎鏂囦欢澶规湰韬�
boolean succeed = fileRoot.delete();//鏂囦欢澶圭┖杩欎釜鏂规硶鎵嶆湁鏁�
- System.out.println("鍒犻櫎鏂囦欢澶硅矾寰�=" + fileRoot.getAbsolutePath() + "->->鍒犻櫎缁撴灉=" + succeed);
+ System.out.println("鍒犻櫎鏂囦欢澶硅矾寰�---" + fileRoot.getAbsolutePath() + "===鍒犻櫎缁撴灉---" + succeed);
} catch (Exception e) {
System.out.println("鍒犻櫎鏂囦欢澶规湁寮傚父===" + e.getMessage());
}
@@ -195,7 +258,7 @@
//region ---------銆愭枃浠躲�戞搷浣�-----------
/**
- * 鍒涘缓鏂囦欢
+ * 鍒涘缓銆愭枃浠躲��
*
* @param fullPath 鍏ㄨ矾寰�
* @return -
@@ -205,7 +268,7 @@
File file = new File(fullPath);
if (!file.exists()) {
boolean succeed = file.createNewFile();
- System.out.println("鍒涘缓鏂囦欢璺緞=" + file.getAbsolutePath() + "->->鍒涘缓鏂囦欢缁撴灉=" + succeed);
+ System.out.println("鍒涘缓鏂囦欢璺緞---" + file.getAbsolutePath() + "===鍒涘缓鏂囦欢缁撴灉---" + succeed);
return succeed;
}
return true;
@@ -216,7 +279,7 @@
}
/**
- * 鍒犻櫎鏂囦欢
+ * 鍒犻櫎銆愭枃浠躲��
*
* @param fullPath 鍏ㄨ矾寰�
* @return -
@@ -226,7 +289,7 @@
File file = new File(fullPath);
if (file.exists()) {
boolean succeed = file.delete();
- System.out.println("鍒犻櫎鏂囦欢===" + succeed);
+ System.out.println("鍒犻櫎鏂囦欢---" + fullPath + "===缁撴灉---" + succeed);
return succeed;
}
return true;
@@ -257,9 +320,9 @@
d.write(data);
d.flush();
d.close();
- System.out.println("鍐欏叆鏂囦欢鎴愬姛==" + fullPath);
+ System.out.println("鍐欏叆鏂囦欢鎴愬姛---" + fullPath);
} catch (Exception e) {
- System.out.println("鍐欏叆鏂囦欢鏈夊紓甯�==" + e.getMessage());
+ System.out.println("鍐欏叆鏂囦欢鏈夊紓甯�---" + e.getMessage());
}
}
@@ -297,16 +360,44 @@
d.write("\r\n".getBytes());// 鍐欏叆涓�涓崲琛�
d.flush();
d.close();
- if (file.length() > 1024 * 1024 * m) {
- //鏂囦欢澶т簬1m,鍒犻櫎鏂囦欢鍓�10鏉℃棩蹇�
- this.delFileLien(fullPath, 10);
+ if (file.length() > 1024 * 1024 * mDataSize) {
+ //鏂囦欢澶т簬1m,鍒犻櫎鏂囦欢鍓�100鏉℃棩蹇�
+ this.delFileLien(fullPath, 100);
}
- System.out.println("鍐欏叆涓�琛屾暟鎹埌鏂囦欢鎴愬姛===" + dataLine);
+// System.out.println("鍐欏叆涓�琛屾暟鎹埌鏂囦欢鎴愬姛---" + dataLine);
} catch (Exception e) {
- System.out.println("鍐欏叆涓�琛屾暟鎹埌鏂囦欢鏈夊紓甯�===" + e.getMessage());
+ System.out.println("鍐欏叆涓�琛屾暟鎹埌鏂囦欢鏈夊紓甯�---" + e.getMessage());
}
}
+
+ /**
+ * 璇诲彇鏂囦欢
+ *
+ * @param filePath 鍏ㄨ矾寰�
+ * @return 鏁版嵁
+ */
+ public byte[] readFileByte1(String filePath) {
+ try {
+ if (!isBoolean(filePath)) {
+ return null;
+ }
+ File f = new File(filePath);
+ if (!f.exists()) {
+ return null;
+ }
+ FileInputStream fis = new FileInputStream(f);
+ byte[] bytes = FileUtils.readFileToByteArray(f);//杩欎釜鏂规硶涓嶅吋鐢╝ndroid 6.0
+ fis.close();
+ System.out.println("璇诲彇鏂囦欢鎴愬姛---" + filePath);
+ return bytes;
+ } catch (Exception e1) {
+ System.out.println("璇诲彇鏂囦欢鏈夊紓甯�---" + e1.getMessage());
+ return null;
+ }
+
+ }
+
/**
* 璇诲彇鏂囦欢
@@ -324,25 +415,16 @@
return null;
}
FileInputStream fis = new FileInputStream(f);
-// byte[] bytes = new byte[fis.available()];
- byte[] readByte = new byte[1024];
- List<Byte> byteList = new ArrayList<>();
- int len = 0;
- while ((len = fis.read(readByte)) != -1) {
- for (int i = 0; i < len; i++) {
- byteList.add(readByte[i]);
- }
- }
- Byte[] forbByte = byteList.toArray(new Byte[0]);
- byte[] bytes = new byte[forbByte.length];
- for (int i = 0; i < forbByte.length; i++) {
- bytes[i] = forbByte[i];
- }
+ BufferedInputStream bis = new BufferedInputStream(fis);
+ int fileLength = (int) f.length();
+ byte[] bytes = new byte[fileLength];
+ int len = bis.read(bytes);
+ bis.close();
fis.close();
- System.out.println("璇诲彇鏂囦欢鎴愬姛===" + filePath);
+ System.out.println("璇诲彇鏂囦欢鎴愬姛---" + filePath);
return bytes;
} catch (Exception e1) {
- System.out.println("璇诲彇鏂囦欢鏈夊紓甯�===" + e1.getMessage());
+ System.out.println("璇诲彇鏂囦欢鏈夊紓甯�---" + e1.getMessage());
return null;
}
@@ -356,7 +438,6 @@
*/
public String readFile(String filePath) {
try {
-
byte[] bytes = readFileByte(filePath);
if (bytes == null) {
return "";
@@ -367,6 +448,32 @@
}
}
+
+ /**
+ * 璇诲彇鏂囦欢
+ *
+ * @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;
/**
* 鎸囧畾鍒犻櫎鏂囦欢琛屾暟锛堜粠鍓嶉潰鍒犻櫎璧凤級
@@ -409,6 +516,34 @@
}
/**
+ * 鎵撳紑璧勬簮鏂囦欢
+ *
+ * @param fileName 鏂囦欢鍚�
+ * @param context 涓婁笅鏂�
+ * @return 杩斿洖json瀛楃涓�
+ */
+ public String openAssetsFileJson(String fileName, Context context) {
+ if (TextUtils.isEmpty(fileName)) {
+ return "";
+ }
+ //灏唈son鏁版嵁鍙樻垚瀛楃涓�
+ StringBuilder stringBuilder = new StringBuilder();
+ try {
+ //鑾峰彇assets璧勬簮绠$悊鍣�
+ AssetManager assetManager = context.getAssets();
+ //閫氳繃绠$悊鍣ㄦ墦寮�鏂囦欢骞惰鍙�
+ BufferedReader bf = new BufferedReader(new InputStreamReader(assetManager.open(fileName)));
+ String line;
+ while ((line = bf.readLine()) != null) {
+ stringBuilder.append(line);
+ }
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ return stringBuilder.toString();
+ }
+
+ /**
* 鍒ゆ柇璺緞鏄惁鍚堟硶
*
* @param path 璺緞
@@ -416,7 +551,7 @@
*/
public boolean isBoolean(String path) {
if (path.contains("//") || path.contains("\\")) {
- System.out.println("鏃犳晥鏂囦欢璺緞===" + path);
+ System.out.println("鏃犳晥鏂囦欢璺緞---" + path);
return false;
}
return true;
--
Gitblit v1.8.0