瀏覽代碼

磁盘信息获取命令无法获取所有分区信息修复

Signed-off-by: SnailBoy <lml0305@yeah.net>
SnailBoy 2 年之前
父節點
當前提交
241bb8e933
共有 1 個文件被更改,包括 20 次插入9 次删除
  1. 20 9
      Admin.NET/Admin.NET.Core/Util/ComputerUtil.cs

+ 20 - 9
Admin.NET/Admin.NET.Core/Util/ComputerUtil.cs

@@ -38,7 +38,7 @@ public static class ComputerUtil
 
         if (IsUnix())
         {
-            string output = ShellUtil.Bash("df -m / | awk '{print $2,$3,$4,$5,$6}'");
+            string output = ShellHelper.Bash(@"df -mT | awk '/^\/dev\/vd/ {print $1,$2,$3,$4,$5,$6}'");
             var arr = output.Split('\n', StringSplitOptions.RemoveEmptyEntries);
             if (arr.Length == 0) return diskInfos;
 
@@ -46,15 +46,26 @@ public static class ComputerUtil
             if (rootDisk == null || rootDisk.Length == 0)
                 return diskInfos;
 
-            DiskInfo diskInfo = new()
+            foreach (var item in arr)
             {
-                DiskName = "/",
-                TotalSize = long.Parse(rootDisk[0]) / 1024,
-                Used = long.Parse(rootDisk[1]) / 1024,
-                AvailableFreeSpace = long.Parse(rootDisk[2]) / 1024,
-                AvailablePercent = decimal.Parse(rootDisk[3].Replace("%", ""))
-            };
-            diskInfos.Add(diskInfo);
+                var rootDisk = item.Split(' ', (char)StringSplitOptions.RemoveEmptyEntries);
+                if (rootDisk == null || rootDisk.Length == 0)
+                {
+                    return diskInfos;
+                }
+
+
+                DiskInfo diskInfo = new DiskInfo()
+                {
+                    DiskName = rootDisk[0],
+                    TypeName = rootDisk[1],
+                    TotalSize = long.Parse(rootDisk[2]) / 1024,
+                    Used = long.Parse(rootDisk[3]) / 1024,
+                    AvailableFreeSpace = long.Parse(rootDisk[4]) / 1024,
+                    AvailablePercent = decimal.Parse(rootDisk[5].Replace("%", ""))
+                };
+                diskInfos.Add(diskInfo);
+            }
         }
         else
         {