? ?
java delete是什么,讓我們一起了解一下。
delete是指刪除,常用于編程語言中(C++,SQL等等)。而在java中的delete可以刪除一個(gè)對(duì)象的屬性,卻不能刪除一個(gè)變量,也不能刪除一個(gè)函數(shù),delete只有當(dāng)一個(gè)屬性無法被刪除時(shí)才返回false。
為什么delete只有當(dāng)一個(gè)屬性無法被刪除時(shí)才返回false呢?
舉例說明:比如在項(xiàng)目中要?jiǎng)h除文件夾, 只有一層, 下面有zip包, jpg圖片, xml文件, 但是在刪除時(shí), 有一部分文件卻刪不掉, delete的結(jié)果是false。
示例代碼如下:
public?void?deleteDir(File?file) { if?(file.exists()) { ? File?files[]?=?file.listFiles(); for?(int?i?=?0;?i?上述業(yè)務(wù)邏輯是, 根據(jù)業(yè)務(wù)號(hào)從數(shù)據(jù)庫讀取該業(yè)務(wù)號(hào)下影像的路徑,然后找到對(duì)應(yīng)的文件并復(fù)制到以業(yè)務(wù)號(hào)命名的文件夾下,以業(yè)務(wù)號(hào)命名的文件夾放在指定的文件夾destdir下,然后然后根據(jù)影像信息生成xml報(bào)文。
當(dāng)報(bào)文生成后, 將影像和報(bào)文打包成zip, 然后將zip通過第三方接口上傳到影像平臺(tái)。當(dāng)一個(gè)業(yè)務(wù)上傳成功后, 要?jiǎng)h除以這個(gè)業(yè)務(wù)號(hào)命名的目錄, 就是在刪除時(shí)出現(xiàn)了以上描述的問題, 那么到底是哪個(gè)環(huán)節(jié)的問題?
一個(gè)是拷貝文件, 一個(gè)是生成zip包, 無非這兩個(gè)地方, 所以, 統(tǒng)統(tǒng)加了賦空和回收的操作代碼如下:
fos.flush(); fos.close(); fis.close(); fis?=?null; fos?=?null; System.gc();public?boolean?zipMaterial(String?dir,?String?busNO) { File?directory?=?new?File(dir); File[]?files?=?directory.listFiles(); ? try { FileOutputStream?output?=?new?FileOutputStream(new?File(dir?+?busNO +?".zip")); ZipOutputStream?out?=?new?ZipOutputStream(new?BufferedOutputStream( output)); ? for?(int?i?=?0;?i?再次運(yùn)行測試后,就可以了。可見如果是文件, 可以刪除,?但如果是目錄, 必須是空的才可以刪除。
以上就是小編今天的分享了,希望可以幫助到大家。