java读取linux指定文件夹的存储占用,不去使用Java中的File类
时间: 2024-05-02 16:20:54 浏览: 143
Linux编译实现java读取
可以使用Java中的Process类执行Linux命令来获取指定文件夹的存储占用,例如使用du命令:
```java
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class DiskUsage {
public static void main(String[] args) {
String folderPath = "/path/to/folder";
long size = getFolderSize(folderPath);
System.out.println(size);
}
public static long getFolderSize(String folderPath) {
long size = 0;
try {
Process process = Runtime.getRuntime().exec(new String[] { "sh", "-c", "du -s " + folderPath });
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line = reader.readLine();
if (line != null) {
size = Long.parseLong(line.split("\\s+")[0]);
}
reader.close();
process.waitFor();
} catch (Exception e) {
e.printStackTrace();
}
return size;
}
}
```
其中,`du -s`命令可以获取指定文件夹的存储占用,`sh -c`可以执行多个命令。`BufferedReader`读取命令执行结果并解析出存储占用大小。
阅读全文