From 637e3152e3bfea430ca774c7dd178b4b9696c37f Mon Sep 17 00:00:00 2001 From: mac <user@users-MacBook-Pro.local> Date: 星期二, 26 十二月 2023 17:11:58 +0800 Subject: [PATCH] 2023年12月26日17:11:48 --- app/src/main/java/com/hdl/photovoltaic/other/HdlFileLogic.java | 169 +++++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 135 insertions(+), 34 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..b9d92d0 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()); + } /** @@ -115,7 +164,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; @@ -148,7 +197,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()); } @@ -171,7 +220,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; @@ -192,7 +241,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; @@ -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,14 +269,24 @@ } } FileOutputStream d = new FileOutputStream(file); - d.write(data.getBytes()); + 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()); } + } + + /** + * 鍐欏叆鏂囦欢 + * + * @param fullPath 鍏ㄨ矾寰� + * @param data 鏁版嵁 + */ + public void writeFile(String fullPath, String data) { + writeFile(fullPath, data.getBytes()); } /** @@ -257,9 +316,36 @@ //鏂囦欢澶т簬1m,鍒犻櫎鏂囦欢鍓�10鏉℃棩蹇� this.delFileLien(fullPath, 10); } - 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[] readFileByte(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); + fis.close(); + System.out.println("璇诲彇鏂囦欢鎴愬姛--->" + filePath); + return bytes; + } catch (Exception e1) { + System.out.println("璇诲彇鏂囦欢鏈夊紓甯�--->" + e1.getMessage()); + return null; } } @@ -272,27 +358,42 @@ */ public String readFile(String filePath) { try { - if (!isBoolean(filePath)) { + byte[] bytes = readFileByte(filePath); + if (bytes == null) { return ""; } - String fileContent = ""; - File f = new File(filePath); - if (!f.exists()) { - return fileContent; - } - FileInputStream fis = new FileInputStream(f); - byte[] bytes = new byte[fis.available()]; - fis.read(bytes); - fis.close(); - System.out.println("璇诲彇鏂囦欢鎴愬姛===" + filePath); - fileContent = new String(bytes); - return fileContent; + return new String(bytes); } catch (Exception e1) { - System.out.println("璇诲彇鏂囦欢鏈夊紓甯�===" + e1.getMessage()); 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; /** * 鎸囧畾鍒犻櫎鏂囦欢琛屾暟锛堜粠鍓嶉潰鍒犻櫎璧凤級 @@ -342,7 +443,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