2013-10-30 40 views
0

從我設法瞭解如果直接使用store.close()而不先使用方法folder.close(expungeYesOrNo),那麼您將無法刪除標記爲刪除的消息,並且該文件夾的ConnectionListeners將不會被激活,因爲CLOSED COnnectionEvent將會不被髮送。它是否正確?任何補充?爲什麼使用folder.close()而不是直接使用store.close()?

預先感謝您

編輯:在IMAPStore.cleanup()的仔細檢查,我看到Folder.close(假)被稱爲爲每個文件夾opened..so然後代碼emailFolder.close(false) /* this one*/; emailStore.close();此位是多餘的對? (取自http://www.javatpoint.com/example-of-receiving-email-using-java-mail-api

回答

0

關閉Store應該關閉所有文件夾,但它比通過調用Folder.close獲得的受控閉包更像是一個「突然」關閉。

如果您知道何時完成了該文件夾並可以關閉該文件夾,那麼該文件夾將比忘記該文件夾更爲可靠和可預測,並假定store.close將處理該文件夾。是的,關閉商店將嘗試關閉所有文件夾,但如果您已經查看了該代碼並查看了它在多個版本中的演變情況,則會發現它很複雜且容易出錯。我想現在相信這是正確和可靠的,但我以前錯了...

0

如果您關閉整個商店,之後您不能對商店做任何其他事情。這當然很明顯?如果您只是關閉該文件夾,則無法對文件夾進行任何操作,但仍可以在商店中操作。

+0

是的,但它是不好的做法,如果我直接關閉商店,而不呼叫folder.close()?會出現任何問題? ...在store.close()的javadoc中,它表示「關閉此服務後,屬於此服務的任何消息傳遞組件(文件夾,消息等)無效」 – jjaps

+0

關閉商店也應關閉所有文件夾,但它比通過調用Folder.close獲得的受控閉包更像是一個「突變」閉包。 –

+0

@BillShannon檢查我的編輯 – jjaps

相關問題