如何用java得到硬盘空间

twb2010t

twb2010t

2016-02-19 16:26

下面是个简单易学的如何用java得到硬盘空间教程,图老师小编详细图解介绍包你轻松学会,喜欢的朋友赶紧get起来吧!

  一般来讲,要用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]));
}
}
}
}

  方法二:使用Jconfig,可以跨平台

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

  从http://www.tolstoy.com/samizdat/jconfig.html上下载jconfig.

  下载的包的sample里有很简单的例子,如果是要得到磁盘空间的话:

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

  用FileRegistry.getVolumes()得到DiskVolume

  然后call getFreeSpace()和getMaxCapacity()

  就是这么简单..:)

  方法三:jni

  这个是解决所有和os相关的操作的万能利器了.

  例子我也懒得写了.

  写一个dll然后call之即可.

展开更多 50%)
分享

猜你喜欢

如何用java得到硬盘空间

编程语言 网络编程
如何用java得到硬盘空间

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

电脑入门
如何节省windows 7系统硬盘空间

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

Win10硬盘空间告急如何全面清理?

电脑入门
Win10硬盘空间告急如何全面清理?

装Win7需要多大的硬盘空间

电脑入门
装Win7需要多大的硬盘空间

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

如何为Win7系统释放更多硬盘空间

电脑网络
如何为Win7系统释放更多硬盘空间

硬盘空间不足怎么升级win10

电脑入门
硬盘空间不足怎么升级win10

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

分享Windows XP消除漏洞完善系统安全的四个法宝

分享Windows XP消除漏洞完善系统安全的四个法宝

INI参数(文本文件)的读写

INI参数(文本文件)的读写
下拉加载更多内容 ↓