java中查询 liunx系统中指定目录下的内空间和空间使用率

编程入门 行业动态 更新时间:2024-10-28 01:16:24

java中查询 liunx系统中指定目录下的内<a href=https://www.elefans.com/category/jswz/34/1771407.html style=空间和空间使用率"/>

java中查询 liunx系统中指定目录下的内空间和空间使用率

需求:
查询 liunx系统中指定目录下的内空间和空间使用率

//查询内存空间剩余空间
public BigDecimal getDirectoryFreeSize(String directoryPath) {long totalSize = getDirectorySize(directoryPath);long usedSize = getUsedSize(directoryPath);long freeSize = totalSize - usedSize;return byteToPB(freeSize);}// 查询内存使用率public String getDirectoryUseRate(String directoryPath) {long usedSize = getUsedSize(directoryPath);long directorySize = getDirectorySize(directoryPath);// 创建一个数值格式化对象NumberFormat numberFormat = NumberFormat.getInstance();// 设置精确到小数点后2位numberFormat.setMaximumFractionDigits(2);return directorySize == 0 ? Constants.ZERO.toString().concat(Constants.PERCENTAGE) : numberFormat.format(usedSize / directorySize).concat(Constants.PERCENTAGE);}//查询内存总大小public long getDirectorySize(String directoryPath) {long size = 0;try {ProcessBuilder processBuilder = new ProcessBuilder("du", "-s", directoryPath);Process process = processBuilder.start();BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));String line = reader.readLine();size = Long.parseLong(line.trim());logger.info("Total size of mounted directory: " + size + " bytes");} catch (IOException e) {logger.error("get Total size of mounted directory fail");}return size;}//查询已使用大小public long getUsedSize(String directoryPath) {long usedSize = 0;try {ProcessBuilder processBuilder = new ProcessBuilder("du", "-c", "-s", directoryPath);Process process = processBuilder.start();BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));String line = reader.readLine();String[] values = line.split("\\s+");usedSize = Long.parseLong(values[0]);logger.info("Used size of mounted directory: " + usedSize + " bytes");} catch (IOException e) {logger.error("get Used size of mounted directory fail");}return usedSize;}// byte转PBpublic BigDecimal byteToPB(long bytes) {BigDecimal size = new BigDecimal(bytes);BigDecimal u = new BigDecimal(1024 * 1024 * 1024 * 1024L);return size.divide(u, 2, RoundingMode.DOWN);}

更多推荐

java中查询 liunx系统中指定目录下的内空间和空间使用率

本文发布于:2023-12-03 08:41:49,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1653336.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:空间   使用率   目录下   系统   java

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!