我有一些代碼執(zhí)行要延遲運(yùn)行。(比方說 10 秒后)。在此代碼執(zhí)行中,我需要檢查提供的文件是否確實是“正?!蔽募皇抢缒夸?。 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);我所期望的是計時器中的執(zhí)行會像外部執(zhí)行一樣,但事實并非如此。這種行為有原因嗎?
1 回答

繁花不似錦
TA貢獻(xiàn)1851條經(jīng)驗 獲得超4個贊
mikeb 和 VGR 都是對的。涉及刪除附件的清理步驟。我沒想過要檢查文件是否仍然存在,因為我假設(shè) f.isFile() 會拋出異常,但事實并非如此。
我刪除/更改了清理,因此不會直接刪除提供的文件。之后,計時器中的代碼為 f.isFile() 返回正確的結(jié)果。
添加回答
舉報
0/150
提交
取消