📄 jdiskserial.java
字号:
package cn.banny.util.io;
/**
* JDiskSerial 类 ,获得硬盘的相关物理参数。<br>
* 以下所有本地方法中 nDrive 参数为硬盘序号,
* 在WINDOWS NT 4.0、WINDOWS 2000和WINDOWS XP中,
* 一般设为0即可,所对应的硬盘序号为磁盘管理中的硬盘,
* 即磁盘管理中的磁盘0参数应设为0,
* 磁盘1则参数应设为1;在 WINDOWS 95、WINDOWS 98和WINDOWS ME中,
* 磁盘序号与硬盘所连接的IDE接口的关,如果硬盘为第一个IDE接口的主盘,
* 参数设为0,从盘设为1,为第二个IDE接口的主盘参数为2,从盘为3。<br>
*
* 如果方法返回为 null,一种情况是调用不成功,另一种情况是指定的硬盘序号没有对应的硬盘。
*
*/
public final class JDiskSerial {
private static final JDiskSerial INSTANCE = new JDiskSerial();
public static JDiskSerial get() {
return INSTANCE;
}
static {
System.loadLibrary("JDiskSerial");
}
/**
* 获得硬盘物理序列号
*/
private static native String getSerialNumber(int nDrive);
/**
* 获得硬盘型号
*/
private static native String getModelNumber(int nDrive);
/**
* 获得硬盘修订号
*/
private static native String getRevisionNumber(int nDrive);
/**
* 获得硬盘缓存大小
*/
private static native int getBufferSize(int nDrive);
/**
* 获得硬盘的柱面数
*/
private static native int getDiskCylinders(int nDrive);
/**
* 获得硬盘的磁头数
*/
private static native int getDiskHeads(int nDrive);
/**
* 获得硬盘每磁道的扇区数
*/
private static native int getSectorsOfTrack(int nDrive);
public Disk disk(int nDrive) {
Disk disk = new Disk(nDrive);
disk.setSerialNumber(getSerialNumber(nDrive));
disk.setModelNumber(getModelNumber(nDrive));
disk.setRevisionNumber(getRevisionNumber(nDrive));
disk.setBufferSize(getBufferSize(nDrive));
disk.setDiskCylinders(getDiskCylinders(nDrive));
disk.setDiskHeads(getDiskHeads(nDrive));
disk.setSectorsOfTrack(getSectorsOfTrack(nDrive));
return disk;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -