我有一些代码执行要延迟运行。(假设 10 秒后)。在此代码执行中,我需要检查提供的文件是否确实是“正常”文件,而不是例如目录。
for (File f : pAttachments) {
f.isFile(); // returns true, if file is a "normal" file
}
Timer tx = new java.util.Timer();
tx.schedule(new java.util.TimerTask() {
@Override
public void run() {
for (File f : pAttachments) {
f.isFile(); // returns false, even if file is a "normal" file
}
tx.cancel();
}
}, 10000);
我期望的是计时器中的执行会像外部执行一样,但事实并非如此。这种行为有原因吗?
mikeb 和 VGR 哪里都对。涉及到删除附件的清理步骤。我没有想到检查文件是否仍然存在,因为我认为 f.isFile() 会抛出异常,但事实并非如此。
我删除/更改了清理,因此不会直接删除提供的文件。之后计时器中的代码为 f.isFile() 返回正确的结果。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句