Java如何获得硬盘剩余空间?

Python016

Java如何获得硬盘剩余空间?,第1张

java中可以使用file对象,获取当前电脑硬盘基本信息,示例如下:

import java.io.File

 

public class DiskSpaceDetail {

 

    public static void main(String[] args) {

 

        File diskPartition = new File("C:")

 

        long totalCapacity = diskPartition.getTotalSpace() 

 

        long freePartitionSpace = diskPartition.getFreeSpace() 

        long usablePatitionSpace = diskPartition.getUsableSpace() 

 

        System.out.println("**** Sizes in Mega Bytes ****\n")

 

        System.out.println("Total C partition size : " + totalCapacity / (1024*1024) + " MB")

        System.out.println("Usable Space : " + usablePatitionSpace / (1024 *1024) + " MB")

        System.out.println("Free Space : " + freePartitionSpace / (1024 *1024) + " MB")

 

        System.out.println("\n**** Sizes in Giga Bytes ****\n")

 

        System.out.println("Total C partition size : " + totalCapacity / (1024*1024*1024) + " GB")

        System.out.println("Usable Space : " + usablePatitionSpace / (1024 *1024*1024) + " GB")

        System.out.println("Free Space : " + freePartitionSpace / (1024 *1024*1024) + " GB")

    }

}

问了一下我远标出来的程序员哥们,她说,你看下对不对

swing下的包,javax.swing.filechooser.FileSystemView可以获取:

FileSystemView fileSys=FileSystemView.getFileSystemView()//获取当前系统文件类型

//获取系统的所有盘符或系统卷类型

for(File f:File.listRoots()){

System.out.println(fileSys.getSystemDisplayName(f))//获取系统卷标及名字

System.out.println(fileSys.getSystemTypeDescription(f))//获取系统卷的类型

System.out.println(f.getTotalSpace())//获取该卷大小(单位:字节)

System.out.println(f.getFreeSpace())//获取该卷可用大小(单位:字节)

}

使用sigar,private static void file() throws Exception {Sigar sigar = new Sigar() FileSystem fslist[] = sigar.getFileSystemList() for (int i = 0i <fslist.lengthi++) {System.out.println("分区的盘符名称" + i) FileSystem fs = fslist[i] // 分区的盘符名称System.out.println("盘符名称:" + fs.getDevName()) // 分区的盘符名称System.out.println("盘符路径:" + fs.getDirName()) System.out.println("盘符标志:" + fs.getFlags())//// 文件系统类型,比如 FAT32、NTFSSystem.out.println("盘符类型:" + fs.getSysTypeName()) // 文件系统类型名,比如本地硬盘、光驱、网络文件系统等System.out.println("盘符类型名:" + fs.getTypeName()) // 文件系统类型System.out.println("盘符文件系统类型:" + fs.getType()) switch (fs.getType()) {case 0: // TYPE_UNKNOWN :未知break case 1: // TYPE_NONEbreak case 2: // TYPE_LOCAL_DISK : 本地硬盘// 文件系统总大小FileSystemUsage usage = null usage = sigar.getFileSystemUsage(fs.getDirName()) System.out.println(fs.getDevName() + "总大小:" + usage.getTotal() + "KB") // 文件系统剩余大小System.out.println(fs.getDevName() + "剩余大小:" + usage.getFree() + "KB") // 文件系统可用大小System.out.println(fs.getDevName() + "可用大小:" + usage.getAvail() + "KB") // 文件系统已经使用量System.out.println(fs.getDevName() + "已经使用量:" + usage.getUsed() + "KB") double usePercent = usage.getUsePercent() * 100D // 文件系统资源的利用率System.out.println(fs.getDevName() + "资源的利用率:" + usePercent + "%") break case 3:// TYPE_NETWORK :网络break case 4:// TYPE_RAM_DISK :闪存break case 5:// TYPE_CDROM :光驱break case 6:// TYPE_SWAP :页面交换break }}return }