
import javaioFile;
/
jdk60下的磁盘使用情况例子
/
public class Diskfree {
public static void main(String[] args) {
File[] roots = FilelistRoots();//获取磁盘分区列表
for (File file : roots) {
Systemoutprintln(filegetPath()+"信息如下:");
Systemoutprintln("空闲未使用 = " + filegetFreeSpace()/1024/1024/1024+"G");//空闲空间
Systemoutprintln("已经使用 = " + filegetUsableSpace()/1024/1024/1024+"G");//可用空间
Systemoutprintln("总容量 = " + filegetTotalSpace()/1024/1024/1024+"G");//总空间
Systemoutprintln();
}
}
}
File f = new File("e:\")
if(fexists()){
return fgetName(); }
else{
return null;
}
最原始的方法可以遍历所有盘符文件
public class Path
{
private final List<File> list=new ArrayList<File>();
private String directory;
public Path(String s)
{
thisdirectory=s;
}
private void genPath()
{
File[] roots=FilelistRoots();
for(File root:roots)
searchExists(root);
}
private void searchExists(File file)
{
String tempPath=filegetAbsolutePath();
if(tempPathcontains(directory)
&&(tempPathsubstring(tempPathlastIndexOf(directory))equals(directory)))
listadd(file);
if(fileisDirectory()&&filelist()!=null)
{
File[] files=filelistFiles();
for(File f:files)
{
searchExists(f);
}
}
}
public void listPath()
{
genPath();
for(File file:list)
Systemoutprintln(filegetAbsolutePath());
}
public static void main(String[] args) throws UnsupportedEncodingException
{
Path p=new Path("CS16");
plistPath();
}
}
测试正确,但性能太差,考虑用好的文件查找算法和多线程来作
list()方法可能返回null,如果你某个目录中为空,没有子目录,没有其他文件,就返回空,则会出现nullPointerException,
而这些出现异常时的文件,都是系统中不存在的(不是隐藏的文件,也不是系统保护的文件。)
个人认为,这些文件是跟回收站有关的,往往这种文件都是禁止外界访问的,导致File指向null对象,就抛出空指针异常。所以加个if判断是否为null比如
public void showSubFile(File f)
{
File[] fs = flistFiles();
if(fs != null) //看这里,看这里,看这里
for(int i=0;i<fslength;i++)
{
File temp = fs[i];
if(tempisFile())
{
Systemoutprintln(tempgetName());
}
else
{
showSubFile(temp);
}
}
}
这样不会出现问题
以上就是关于求一个用来获取windows磁盘读写速率的java代码全部的内容,包括:求一个用来获取windows磁盘读写速率的java代码、用JAVA怎么判断某个盘符是否存在、如何用java代码得到文件夹的路径(即一个方法,输入文件夹名称,返回路径)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)