使用java得到硬盘空间

一般来讲,要用java得到硬盘空间,有3种方法:

1. 调用system的command,然后分析得到的结果,这种方法有很强的系统依赖性,linux下和win下要分别写程序

下面是一个win下的例子,编译成功之后,运行java Diskspace yourdir(比如c:\)

import java.io.BufferedReader;
import java.io.InputStreamReader;
/**
* Determine free disk space for a given directory by
* parsing the output of the dir command.
* This class is inspired by the code at
* Works only under Windows under certain circumstances.
* Yes, it´s that shaky.
* Requires Java 1.4 or higher.
* @[EMAIL PROTECTED]
*Marco Schmidt
*/
public class Diskspace
{
private Diskspace()
{
// prevent instantiation of this class
}
/**
* Return available free disk space for a directory.
* @[EMAIL PROTECTED]
dirName name of the directory
* @[EMAIL PROTECTED]
free disk space in bytes or -1 if unknown
*/
public static long getFreeDiskSpace(String dirName)
{
try
{
// guess correct ´dir´ command by looking at the
// operating system name
String os = System.getProperty("os.name");
String command;
if (os.equals("Windows NT") ||
os.equals("Windows 2000"))
{
command = "cmd.exe /c dir " + dirName;
}
else
{
command = "command.com /c dir " + dirName;
}
// run the dir command on the argument directory name
Runtime runtime = Runtime.getRuntime();
Process process = null;
process = runtime.exec(command);
if (process == null)
{
return -1;
}
// read the output of the dir command
// only the last line is of interest
BufferedReader in = new BufferedReader(
new InputStreamReader(process.getInputStream()));
String line;
String freeSpace = null;
while ((line = in.readLine()) != null)
{
freeSpace = line;
}
if (freeSpace == null)
{
return -1;
}
process.destroy();
// remove dots & commas & leading and trailing whitespace
freeSpace = freeSpace.trim();
freeSpace = freeSpace.replaceAll("\\.", "");
freeSpace = freeSpace.replaceAll(",", "");
String[] items = freeSpace.split(" ");
// the first valid numeric value in items after(!) index 0
// is probably the free disk space
int index = 1;
while (index < items.length)
{
try
{
long bytes = Long.parseLong(items[index++]);
return bytes;
}
catch (NumberFormatException nfe)
{
}
}
return -1;
}
catch (Exception exception)
{
return -1;
}
}
/**
* Command line program to print the free diskspace to stdout
* for all 26 potential root directories A:\ to Z:\
* (when no parameters are given to this program)
* or for those directories (drives) specified as parameters.
* @[EMAIL PROTECTED]
args program parameters
*/
public static void main(String[] args)
{
if (args.length == 0)
{
for (char c = ´A´; c <= ´Z´; c++)
{
String dirName = c + ":\\";
System.out.println(dirName + " " +
getFreeDiskSpace(dirName));
}
}
else
{
for (int i = 0; i < args.length; i++)
{
System.out.println(args[i] + " " +
getFreeDiskSpace(args[i]));
}
}
}
}

时间: 2024-11-02 02:05:04

使用java得到硬盘空间的相关文章

Java编程获取硬盘空间

因为论坛有人问到这个问题,所以就写了这篇文章.希望对大家有所帮助. 一般来讲,要用java得到硬盘空间,有3种方法: 1. 调用system的command,然后分析得到的结果,这种方法有很强的系统依赖性,linux下和win下要分别写程序. 下面是一个win下的例子,编译成功之后,运行java Diskspace yourdir(比如c:\) import java.io.BufferedReader; import java.io.InputStreamReader; /** * Deter

如何节省windows 7系统硬盘空间

装完windows7系统之后,即便未安装任何应用程序C盘占用空间已达到10G以上.其实有一些东西可能是我们不需要的,如果可以将一些 我们不需要的东西从硬盘里去除而且不影响系统运行,岂不是大大节约了空间? 下面我们来看看有哪些办法可以帮我们节省 windows 7的系统硬盘空间. 1.正确设置虚拟内存 内存在计算机中的作用很大,电脑中所有运行的程序都需要内存,如果执 行的程序很大或很多,就会导致内存消耗殆尽.为了解决这个问题,WINDOWS运用了虚拟内存技术,即拿出一部分硬盘空间来充当内存使用 ,

设置Solaris用户目录和硬盘空间的使用

限制用户目录使用空间 修改/etc/vfstab,把需要限制的文件系统的mount options改为rq 到文件系统的顶,执行命令touch quotas和chmod 600 quotas quotaon -v -a 设定用户可使用的空间(edquota 用户名) 限制用户硬盘使用空间 UNIX作为一种多用户系统,它允许多个用户共同使用系统的资源,包括系统的内存,CPU和硬盘.在默认情况下,系统并不会限制每个用户可以使用硬盘空间的大小,所以如果用户恶意使用硬盘,或用户由于疏忽,将硬盘空间全部占

硬盘空间丢失原因及解决办法

好好的一个硬盘,在安装完成一个软件后,就丢失了好几个G的空间,这到底是为什么呢?平时我们也会遇到一些磁盘空间丢失的问题,平时有没有自己观察过自己的硬盘呢?其实我们的硬盘都有空间丢失的现象,大家可以留意的观察一下,下面是一些主要丢失的原因. 1.软件导致空间"假"丢失 很多时候,自己明明删除了一大批文件,结果硬盘可用空间不仅没增加,反而还小了些,何故? 现在很多软件都有删除数据保护功能,例如诺顿的回收站保护功能.FinalData之类的数据恢复软件等.如果你的系统中安装了Norton S

windows7智能创建还原点 节约硬盘空间

在WindowsXP时代,用户可以通过Ghost方式解决备份还原.但当操作系统进入Windows7时代,使用Ghost方式备份还原,显然还不如系统自带的还原功能好.问题是,在Windows7中启用系统还原后,它会自动创建还原点(默认周期为一天).还原点越多,也就意味着硬盘空间将会越来越小. 由此,我们可以考虑让Windows7自动创建还原点更"智能"一些,比如将系统默认每天创建一次,修改为每两天或三天创建一次. 小知识:不一样的Windows 7还原点 可能还有一些用户不知道,Wind

装Win7需要多大的硬盘空间

装Windows 7旗舰版,C盘分了40G,装好系统驱动和漏洞用了11G,还29G多出来了.不算虚拟内存,刚装的电脑一般说装Windows 7最少要40G空间,真这样吗?新电脑硬盘没换才80G的.C盘分多了没,其他盘就多少可以用了. 专家回答: 大约30-35G的硬盘就完全可正常安装Windows 7系统了. 最小可以选择15G的系统分区,不过这样的话需要做一系列的优化系统占用硬盘空间,关闭一些缓存功能,避免一次系统休眠之类的就把系统盘塞满导致死机或者系统崩溃. 固态硬盘多作为系统盘使用,但容量

装Win7要多少硬盘空间

  大约30-35G的硬盘就完全可正常安装Windows 7系统了. 最小可以选择15G的系统分区,不过这样的话需要做一系列的优化系统占用硬盘空间,关闭一些缓存功能,避免一次系统休眠之类的就把系统盘塞满导致死机或者系统崩溃. 固态硬盘多作为系统盘使用,但容量比较小,为了节省容量有一些列的优化操作,同样对机械硬盘适用. 如果物理内存的容量已经达到了4GB或者更大的内存容量,那么虚拟内存可以调到很低或者关闭了.

win7系统压缩图片大小节省硬盘空间的方法

  win7系统压缩图片大小节省硬盘空间的方法.很多用户喜欢在网上下载喜欢的图片,或者手机相册照片都喜欢储存在win7系统电脑中,手机照片都有好几M,如果很多照片的话,是很占内存空间的,如果上传到空间图片太大,上传速度也会很慢.其实我们可以压缩图片大小,这样可以节省硬盘空间,那么该如何操作呢?大家一起看看下面方法. 方法如下: 1.如果你的图片格式是PNG格式的,而且对图片质量要求不高,可以使用下面的方法来压缩图片大小; 2.右键单击文件选项,将PNG图像文件用系统自带的画图板功能打开; 3.然

安装Windows 7需要多大硬盘空间

  问:安装Windows 7需要多大硬盘空间? 答:系统完全安装完占用硬盘空间7G左右,但是建议Windows 7所在分区空闲空间在15G左右,这样比较稳定.虽然微软官方的安装需求是16G以上的磁盘空间,但实际上Windows7并没有占用那么大,要求16G是将虚拟内存等文件都算在内了,这也是为了保证系统能更加流畅的运行. 相比较Vista的庞大的体积(12G左右),Windows7的减肥工作做得很成功.在维持了Vista各种功能基础上,剪掉了近5G的体积,实属不易!虽然如此我们还是建议您在16