📄 diskutil.java
字号:
package cn.jsprun.utils;
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileWriter;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.StringTokenizer;
public class DiskUtil {
public static long getFreeSpace(String path) throws Exception {
if (System.getProperty("os.name").startsWith("Windows")) {
return getFreeSpaceOnWindows(path);
}else if (System.getProperty("os.name").startsWith("Linux")) {
return getFreeSpaceOnLinux(path);
}
throw new Exception("无法获取空间大小!");
}
private static long getFreeSpaceOnWindows(String path) throws Exception {
long bytesFree = -1;
File script = new File(System.getProperty("java.io.tmpdir"),"script.bat");
PrintWriter writer = new PrintWriter(new FileWriter(script, false));
writer.println("dir \"" + path + "\"");
writer.close();
Process p = Runtime.getRuntime().exec(script.getAbsolutePath());
InputStreamReader isr=new InputStreamReader(p.getInputStream());
BufferedReader br=new BufferedReader(isr);
String content=br.readLine();
StringBuffer buffer = new StringBuffer();
while(content!=null)
{
buffer.append(content+"\n");
content=br.readLine();
}
isr.close();
br.close();
String outputText = buffer.toString();
StringTokenizer tokenizer = new StringTokenizer(outputText, "\r\n");
while (tokenizer.hasMoreTokens()) {
String line = tokenizer.nextToken().trim();
if (line.endsWith("可用字节")) {
String[] bytesFrees =line.split(" ");
bytesFree = Long.parseLong(bytesFrees[bytesFrees.length-2].replaceAll(",", ""));
}
}
return bytesFree;
}
private static long getFreeSpaceOnLinux(String path) throws Exception {
long bytesFree = -1;
Process p = Runtime.getRuntime().exec("df " + "/" + path);
InputStream reader = new BufferedInputStream(p.getInputStream());
StringBuffer buffer = new StringBuffer();
for (;;) {
int c = reader.read();
if (c == -1)
break;
buffer.append((char) c);
}
String outputText = buffer.toString();
reader.close();
StringTokenizer tokenizer = new StringTokenizer(outputText, "\n");
tokenizer.nextToken();
if (tokenizer.hasMoreTokens()) {
String line2 = tokenizer.nextToken();
StringTokenizer tokenizer2 = new StringTokenizer(line2, " ");
if (tokenizer2.countTokens() >= 4) {
tokenizer2.nextToken();
tokenizer2.nextToken();
tokenizer2.nextToken();
bytesFree = Long.parseLong(tokenizer2.nextToken());
return bytesFree;
}
return bytesFree;
}
throw new Exception("Can not read the free space of " + path + " path");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -