gpt4 book ai didi

java - 文件 getFreeSpace 行为奇怪

转载 作者:行者123 更新时间:2023-12-01 10:18:55 27 4
gpt4 key购买 nike

我有一个在 Tomcat 6 上运行的应用程序,并使用 JDK 1.6.0_34。

它会定期(大约每 1-5 分钟)检查共享文件夹,并在硬盘驱动器上没有可用空间时执行一些操作(注意,不删除内容)。因此,通常一切正常,但大约每天一次 File getFreeSpace 方法返回 0,即使硬盘驱动器上有大量可用空间也是如此。

在我的代码中我有这个:

public void toDo() {
File file = new File(FOLDER_PATH);
long space = file.getFreeSpace();
long minDiskSize = settings.getMinDiskSize();
String absolutePath = file.getAbsolutePath();
if (space < minDiskSize) {
log.debug("NOT_OK:\n" +
"Folder path: [" + absolutePath + "]\n" +
"Min free space from config: [" + minDiskSize + "]\n" +
"Free space on server: [" + space + "]");
//Do some actions
} else {
log.debug("OK:\n" +
"Folder path: [" + absolutePath + "]\n" +
"Min free space from config: [" + minDiskSize + "]\n" +
"Free space on server: [" + space + "]");
}
}

这是日志:

2016-03-02 13:35:22,810 <- note, time from a log file.
NOT_OK:
Folder path: [\\server\FOLDER$\input]
Free space from config: [104857600]
Free space on server: [0]

2016-03-02 13:36:24,029 <- note, just a minute latter everything is OK again.
OK:
Folder path: [\\server\FOLDER$\input]
Min free space from config: [104857600]
Free space on server: [402494513152]

那么,造成这种奇怪行为的原因是什么?

最佳答案

这可能只是一个小故障,所以,我建议当空间小于 minDiskSize 时仔细检查空间。我的意思是这样的:

public void toDo() {
File file = new File(FOLDER_PATH);
long space = file.getFreeSpace();
long minDiskSize = settings.getMinDiskSize();
String absolutePath = file.getAbsolutePath();
if (space < minDiskSize) {
Thread.sleep(62000);
space = file.getFreeSpace();
if(space < minDiskSize){
log.debug("NOT_OK:\n" +
"Folder path: [" + absolutePath + "]\n" +
"Min free space from config: [" + minDiskSize + "]\n" +
"Free space on server: [" + space + "]");
//Do some actions
}else{log.debug("OK:\n" +
"Folder path: [" + absolutePath + "]\n" +
"Min free space from config: [" + minDiskSize + "]\n" +
"Free space on server: [" + space + "]");}
} else {
log.debug("OK:\n" +
"Folder path: [" + absolutePath + "]\n" +
"Min free space from config: [" + minDiskSize + "]\n" +
"Free space on server: [" + space + "]");
}
}

希望这有帮助。

关于java - 文件 getFreeSpace 行为奇怪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35745104/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com