From 1a2b07f01ba4616fd9e894dddf474b56d020158c Mon Sep 17 00:00:00 2001
From: zhubaomin <zhubaomin>
Date: 星期一, 07 四月 2025 15:18:51 +0800
Subject: [PATCH] 整理版本

---
 pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/SysFileSysUtil.java |  113 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 113 insertions(+), 0 deletions(-)

diff --git a/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/SysFileSysUtil.java b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/SysFileSysUtil.java
new file mode 100644
index 0000000..fc1976a
--- /dev/null
+++ b/pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/SysFileSysUtil.java
@@ -0,0 +1,113 @@
+package com.dy.common.util;
+
+import lombok.Data;
+import oshi.software.os.FileSystem;
+import oshi.software.os.OSFileStore;
+import oshi.software.os.OperatingSystem;
+
+import java.util.LinkedList;
+import java.util.List;
+
+/**
+ * @Author: liurunyu
+ * @Date: 2024/8/2 13:54
+ * @Description
+ */
+public class SysFileSysUtil {
+    /**
+     * 纾佺洏淇℃伅
+     */
+    public static LinkedList<SysFile> info(OperatingSystem os)  {
+        LinkedList<SysFile> sysFiles = new LinkedList<SysFile>();
+        FileSystem fileSystem = os.getFileSystem();
+        List<OSFileStore> fsArray = fileSystem.getFileStores();
+        for (OSFileStore fs : fsArray) {
+            long free = fs.getUsableSpace();
+            long total = fs.getTotalSpace();
+            long used = total - free;
+            SysFile sysFile = new SysFile();
+            sysFile.setDirName(fs.getMount());
+            sysFile.setSysTypeName(fs.getType());
+            sysFile.setTypeName(fs.getName());
+            sysFile.setTotal(convertFileSize(total));
+            sysFile.setFree(convertFileSize(free));
+            sysFile.setUsed(convertFileSize(used));
+            sysFile.setUsage(DoubleUtil.mul(DoubleUtil.div(used, total, 4), 100));
+            sysFiles.add(sysFile);
+        }
+        return sysFiles ;
+    }
+
+    /**
+     * 瀛楄妭杞崲
+     *
+     * @param size 瀛楄妭澶у皬
+     * @return 杞崲鍚庡��
+     */
+    public static String convertFileSize(long size) {
+        long kb = 1024;
+        long mb = kb * 1024;
+        long gb = mb * 1024;
+        if (size >= gb) {
+            return String.format("%.1f GB", (float) size / gb);
+        } else if (size >= mb) {
+            float f = (float) size / mb;
+            return String.format(f > 100 ? "%.0f MB" : "%.1f MB", f);
+        } else if (size >= kb) {
+            float f = (float) size / kb;
+            return String.format(f > 100 ? "%.0f KB" : "%.1f KB", f);
+        } else {
+            return String.format("%d B", size);
+        }
+    }
+    @Data
+    public static class SysFile{
+        /**
+         * 鐩樼璺緞
+         */
+        public String dirName;
+
+        /**
+         * 鐩樼绫诲瀷
+         */
+        public String sysTypeName;
+
+        /**
+         * 鏂囦欢绫诲瀷
+         */
+        public String typeName;
+
+        /**
+         * 鎬诲ぇ灏�
+         */
+        public String total;
+
+        /**
+         * 鍓╀綑澶у皬
+         */
+        public String free;
+
+        /**
+         * 宸茬粡浣跨敤閲�
+         */
+        public String used;
+
+        /**
+         * 璧勬簮鐨勪娇鐢ㄧ巼
+         */
+        public double usage;
+
+        public String toString(){
+            StringBuilder sb = new StringBuilder() ;
+            sb.append("   纾佺洏" + dirName + "\n");
+            sb.append("      鐩樼绫诲瀷锛�" + sysTypeName + "\n");
+            sb.append("      鏂囦欢绫诲瀷锛�" + typeName + "\n");
+            sb.append("      鎬诲ぇ灏忥細" + total + "\n");
+            sb.append("      鍓╀綑澶у皬锛�" + free + "\n");
+            sb.append("      宸茬粡浣跨敤閲忥細" + used + "\n");
+            sb.append("      璧勬簮浣跨敤鐜囷細" + usage + "\n");
+
+            return sb.toString() ;
+        }
+    }
+}

--
Gitblit v1.8.0