借助Sigar API获取磁盘信息

﹏ヽ暗。殇╰゛Y 2022-08-07 02:40 306阅读 0赞
  1. Sigar(全称System Information Gatherer And Reporter,即系统信息收集报表器),它提供了一个开源的跨平台的收集计算机硬件和操作系统信息的API(该API底层接口用C语言编写),本文将演示如何借助Sigar API获取磁盘信息:
  2. package com.ghj.packageoftest;
  3. import org.hyperic.sigar.FileSystem;
  4. import org.hyperic.sigar.FileSystemUsage;
  5. import org.hyperic.sigar.Sigar;
  6. import org.hyperic.sigar.SigarException;
  7. /**
  8. * 借助Sigar API获取磁盘信息
  9. *
  10. * @author GaoHuanjie
  11. */
  12. public class DiskTool {
  13. public static void main(String[] args) throws SigarException {
  14. Sigar sigar = new Sigar();
  15. FileSystem [] fileSystemArray = sigar.getFileSystemList();
  16. for ( FileSystem fileSystem:fileSystemArray ) {
  17. System.out.println("fileSystem dirName:" + fileSystem.getDirName());//分区的盘符名称
  18. System.out.println("fileSystem devName:" + fileSystem.getDevName());//分区的盘符名称
  19. System.out.println("fileSystem typeName:" + fileSystem.getTypeName());// 文件系统类型名,比如本地硬盘、光驱、网络文件系统等
  20. System.out.println("fileSystem sysTypeName:" + fileSystem.getSysTypeName());//文件系统类型,比如 FAT32、NTFS
  21. System.out.println("fileSystem options:" + fileSystem.getOptions());
  22. System.out.println("fileSystem flags:" + fileSystem.getFlags());
  23. System.out.println("fileSystem type:" + fileSystem.getType());
  24. FileSystemUsage fileSystemUsage = null;
  25. try {
  26. fileSystemUsage = sigar.getFileSystemUsage(fileSystem.getDirName());
  27. } catch (SigarException e) {//当fileSystem.getType()为5时会出现该异常——此时文件系统类型为光驱
  28. continue;
  29. }
  30. System.out.println("fileSystemUsage total:" + fileSystemUsage.getTotal() + "KB");// 文件系统总大小
  31. System.out.println("fileSystemUsage free:" + fileSystemUsage.getFree() + "KB");// 文件系统剩余大小
  32. System.out.println("fileSystemUsage used:" + fileSystemUsage.getUsed() + "KB");// 文件系统已使用大小
  33. System.out.println("fileSystemUsage avail:" + fileSystemUsage.getAvail() + "KB");// 文件系统可用大小
  34. System.out.println("fileSystemUsage files:" + fileSystemUsage.getFiles());
  35. System.out.println("fileSystemUsage freeFiles:" + fileSystemUsage.getFreeFiles());
  36. System.out.println("fileSystemUsage diskReadBytes:" + fileSystemUsage.getDiskReadBytes());
  37. System.out.println("fileSystemUsage diskWriteBytes:" + fileSystemUsage.getDiskWriteBytes());
  38. System.out.println("fileSystemUsage diskQueue:" + fileSystemUsage.getDiskQueue());
  39. System.out.println("fileSystemUsage diskServiceTime:" + fileSystemUsage.getDiskServiceTime());
  40. System.out.println("fileSystemUsage usePercent:" + fileSystemUsage.getUsePercent() * 100 + "%");// 文件系统资源的利用率
  41. System.out.println("fileSystemUsage diskReads:" + fileSystemUsage.getDiskReads());
  42. System.out.println("fileSystemUsage diskWrites:" + fileSystemUsage.getDiskWrites());
  43. System.err.println("\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
  44. }
  45. }
  46. }
  47. [0分下载示例工程][0]】

发表评论

表情:
评论列表 (有 0 条评论,306人围观)

还没有评论,来说两句吧...

相关阅读