java,如何获取硬盘分区信息,包括服务器所有硬盘信息,以及硬盘分区信息,包含当前磁盘总空间和可用空间。谢谢
我在windows,本机下亲测可行,题主可以试试,看下图:
package xunlei;
import java.io.File;
import java.text.DecimalFormat;
/**
* Created by zsl on 2017/9/19.
*/
public class Main {
public static void main(String[] args) {
File[] roots = File.listRoots();// 获取磁盘分区列表
for (File file : roots) {
System.out.println(file.getPath() + "信息如下:");
long free = file.getFreeSpace();
long total = file.getTotalSpace();
long use = total - free;
System.out.println("空闲未使用 = " + change(free) + "G");// 空闲空间
System.out.println("已经使用 = " + change(use) + "G");// 可用空间
System.out.println("总容量 = " + change(total) + "G");// 总空间
System.out.println("使用百分比 = " + bfb(use, total));
System.out.println();
}
}
public static long change(long num) {
// return num;
return num / 1024 / 1024 / 1024;
}
public static String bfb(Object num1, Object num2) {
double val1 = Double.valueOf(num1.toString());
double val2 = Double.valueOf(num2.toString());
if (val2 == 0) {
return "0.0%";
} else {
DecimalFormat df = new DecimalFormat("#0.00");
return df.format(val1 / val2 * 100) + "%";
}
}
}
http://blog.csdn.net/heardy/article/details/7102989
import java.io.File;
import java.text.DecimalFormat;
public class Ypxx {
public static void main(String[] args) {
File[] roots = File.listRoots();// 获取磁盘分区列表
for (File file : roots) {
System.out.println(file.getPath() + "信息如下:");
long free = file.getFreeSpace();
long total = file.getTotalSpace();
long use = total - free;
System.out.println("空闲未使用 = " + change(free) + "G");// 空闲空间
System.out.println("已经使用 = " + change(use) + "G");// 可用空间
System.out.println("总容量 = " + change(total) + "G");// 总空间
System.out.println("使用百分比 = " + bfb(use, total));
System.out.println();
}
}
public static long change(long num) {
// return num;
return num / 1024 / 1024 / 1024;
}
public static String bfb(Object num1, Object num2) {
double val1 = Double.valueOf(num1.toString());
double val2 = Double.valueOf(num2.toString());
if (val2 == 0) {
return "0.0%";
} else {
DecimalFormat df = new DecimalFormat("#0.00");
return df.format(val1 / val2 * 100) + "%";
}
}
}
建议使用sigar
这。。。代码随便一搜,一片片的都不用自己写!!!!!
当然还是建议用Sigar:(代码也很容易搜到)
Sigar API 提供一个方便的接口来收集系统信息,如:
◆系统内存,页面交换,cpu,平均负载,运行时间,登录信息
◆每个进程占用的内存,cpu,帐号信息,状态,参数,环境,打开的文件
◆文件系统探测和度量
◆网络接口探测,配置信息和度量
◆网络路由和连接表
实在不行可以使用c++来获取,然后回调返回需要查找的内容