java獲取硬碟
『壹』 java中如何獲得某個磁碟(根目錄)比如C盤
使用sigar,
private static void file() throws Exception {
Sigar sigar = new Sigar();
FileSystem fslist[] = sigar.getFileSystemList();
for (int i = 0; i < fslist.length; i++) {
System.out.println("分區的盤符名稱" + i);
FileSystem fs = fslist[i];
// 分區的盤符名稱
System.out.println("盤符名稱: " + fs.getDevName());
// 分區的盤符名稱
System.out.println("盤符路徑: " + fs.getDirName());
System.out.println("盤符標志: " + fs.getFlags());//
// 文件系統類型,比如 FAT32、NTFS
System.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_NONE
break;
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;
}
『貳』 怎樣用java 獲取 硬碟 cpu 序列號,可調用dll實現
首先,你要用VC++等寫一個實現此功能的DLL導出函數,然後用JNI調用。
獲取CPU ID的代碼:
CString strTmp;
unsigned long s1,s2;
__asm{
mov eax,01h
xor edx,edx
cpuid
mov s1,edx
mov s2,eax
}
strTmp.Format("%08X%08X",s1,s2);