package com.mukden.ServiceDisk;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.Iterator;
public class DiskInfo {
/**
* 获取本地硬盘分区数量
* @return List diskList
*/
public List getDiskCount() {
List diskList = new ArrayList(); //实例化List集合以存放各分区信息
File[] filelist = File.listRoots(); //获取本地磁盘分区集合
//遍例分区集合 取出每个分区盘符(路径)
for (int i = 0; i < filelist.length; i++) {
//添加到List以保存数据
diskList.add(filelist[i].getPath());
}
return diskList; //返回分区数据集合
}
/**
* 获取操作系统所在分区
* @return
*/
public String sysExistsDisk() {
StringBuffer sysPath = new StringBuffer(); //实例化带缓冲的字符串对象
List diskList = getDiskCount(); //获取所有分区集合
//遍例分区集合
for (Iterator iter = diskList.iterator(); iter.hasNext();) {
String path = (String) iter.next(); //取得分区根目录 path
String path32 = path + "WINDOWS" + "\\system32"; //如果为32位系统
String path64 = path + "WINDOWS" + "\\system64"; //如果为64位系统
if (existsPath(path32)) //如果32位系统目录存在
sysPath.append(path32); //将其加入到带缓冲的字符串对象
else if (existsPath(path64)) //如果64位系统目录存在
sysPath.append(path64); //将其加入到带缓冲的字符串对象
}
return new String(sysPath); //返回字符串对象并转为String
}
/**
* 判断给定路径是否存在
* @param path
* @return
*/
private boolean existsPath(String path) {
boolean flag = false; //设定返回值变量flag 初始为flase
File dir = new File(path); //(根据路径参数)实例化文件对象
if (dir.exists()) //判断文件是否存在
flag = true; //存在flag为true
return flag; //返回
}
}