如何获取系统可用磁盘和可用内存?html
这个有自带的 DriveInfo 能够用。
DriveInfo 类 (System.IO) | Microsoft Docsapi
参考:C#得到系统内存占用状况 | 柊ui
偷懒能够直接看:code
//定义内存的信息结构 [StructLayout(LayoutKind.Sequential)] public struct MEMORY_INFO { public uint dwLength; //当前结构体大小 public uint dwMemoryLoad; //当前内存使用率 public ulong ullTotalPhys; //总计物理内存大小 public ulong ullAvailPhys; //可用物理内存大小 public ulong ullTotalPageFile; //总计交换文件大小 public ulong ullAvailPageFile; //总计交换文件大小 public ulong ullTotalVirtual; //总计虚拟内存大小 public ulong ullAvailVirtual; //可用虚拟内存大小 public ulong ullAvailExtendedVirtual; //保留 这个值始终为0 } class MemoryHelper { [DllImport("kernel32.dll")] [return: MarshalAs(UnmanagedType.Bool)] private static extern bool GlobalMemoryStatusEx(ref MEMORY_INFO mi); /// <summary> /// 得到当前内存使用状况 /// </summary> /// <returns></returns> private static MEMORY_INFO GetMemoryStatus() { MEMORY_INFO mi = new MEMORY_INFO(); mi.dwLength = (uint) System.Runtime.InteropServices.Marshal.SizeOf(mi); GlobalMemoryStatusEx(ref mi); return mi; } /// <summary> /// 得到当前可用物理内存大小 /// </summary> /// <returns>当前可用物理内存(B)</returns> private static ulong GetAvailPhys() { MEMORY_INFO mi = GetMemoryStatus(); return mi.ullAvailPhys; } public static ulong GetAvailablePhysMemorySize() { try { return GetAvailPhys(); } catch (Exception) { return 0; } } }