2 u014353911 u014353911 于 2017.09.19 17:59 提问

java,如何获取硬盘分区信息

java,如何获取硬盘分区信息,包括服务器所有硬盘信息,以及硬盘分区信息,包含当前磁盘总空间和可用空间。谢谢

6个回答

Small_Mouse0
Small_Mouse0   Rxr 2017.09.19 20:46
已采纳

我在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) + "%";
        }
    }
}

图片说明

caozhy
caozhy   Ds   Rxr 2017.09.20 00:04
 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) + "%";
        }
    }
}

caozhy
caozhy   Ds   Rxr 2017.09.20 00:04
yushiyoufight
yushiyoufight   Rxr 2017.09.20 09:12

建议使用sigar

qq_33727653
qq_33727653   Rxr 2017.09.20 09:27

这。。。代码随便一搜,一片片的都不用自己写!!!!!

当然还是建议用Sigar:(代码也很容易搜到)

Sigar API 提供一个方便的接口来收集系统信息,如:

◆系统内存,页面交换,cpu,平均负载,运行时间,登录信息

◆每个进程占用的内存,cpu,帐号信息,状态,参数,环境,打开的文件

◆文件系统探测和度量

◆网络接口探测,配置信息和度量

◆网络路由和连接表

kuaitongkeji
kuaitongkeji   2017.09.20 11:27

实在不行可以使用c++来获取,然后回调返回需要查找的内容

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
精彩编程与编程技巧-VB6编程中如何获取硬盘分区信息...
精彩编程与编程技巧-VB6编程中如何获取硬盘分区信息 ...
“获取硬盘信息失败,请谨慎操作”的解决方案
是自己误打误撞搞定了,百度上的经验、知道啥的,都不太靠谱, 首先还是先进入 BIOS,可以试试切换 SATA Mode Section 里面的 IDE(性能一般) 和AHCI (性能较好)的选项重启试试看,如果调整之后,再次进入 PE,能够硬盘信息,则大功告成; 如果还没有,再试试进入 pe 后,(大白菜还是老毛桃)等工具在进入 PE(win3pe,还是 win8pe)桌面都会有一些分区工具,分区工
VC下获取磁盘分区信息
可以获取多个硬盘下有多少个分区,分区大小,分区属于哪个硬盘,分区的起始位置
C++ 获取硬盘所有分区
// 函数描述:函数名GetDeviceInfo // 功能:取驱动器信息 // GetLogicalDriveStrings返回的格式为A:\0B:\0C:\0 // 参数描述: arrDrives存储所有盘符 // 返回值描述:TRUE成功 FALSE失败 // BOOL GetDeviceInfo(CStringArray& arrDrives) { DWORD dw = ::Ge
C++获取磁盘分区空间情况
#include "stdafx.h" #include #include int count_file_delete_time(const char* p_file_time, char* n_delete_time, int n_store_days); //将PULARGE_INTEGER类型的字节(B)数转化为(GB)单位 #define GB(x) (x.H
装系统 “无法获取分区信息,不能继续”怎么弄???
http://we.poppur.com/thread-2082614-1-1.html 楼主在bios里面把硬盘模式改成IDE模式没??不要用AHCI
如何获取程序文件信息
如何获取程序文件信息如何获取程序文件信息如何获取程序文件信息如何获取程序文件信息如何获取程序文件信息
获取硬盘分区信息
/*  * 硬盘分区序列号  * chen.brick@gmail.com 2007.5.28  */ #include #include #include int main() {  _ULARGE_INTEGER lpFreeBytesAvailableToCaller, lpTotalNumberOfBytes, lpTotalNumberOfFreeBytes;
获取硬盘分区信息.rar
闲来无事,结合网上程序,自己编的一个小玩意
获取硬盘分区信息(转)
//程序作者:管宁      //站点:www.cndev-lab.com    #include #include using namespace std;   int main(){          int DiskCount = 0;