專案需要遍歷兩個樹,以及其他一些引數生成一批excel 檔案樹,即:n級目錄+excel檔案。
為了提高建立檔案的效率,一開始,遍歷的過程中,就將乙個乙個excel檔案樹子節點先建立好(只是建立目錄,並沒有建立檔案),然後,開啟100多個執行緒,各自去查資料庫,建立相應的檔案。
單錶最多8w條資料,但總量有上億條,最終生成的檔案20mb;
理論上查詢資料庫的次數:166*7*2=2324次,就算每次查詢用時1秒,累計用時:2324/60=38分鐘;
如果,併發操作,那麼,不能一次性獲取所有資料,需要使用jdbc的fetch_size,查詢用時,會更長。
說這麼多,情況比較複雜,最終生成的很多目錄都是空的(沒有查詢到資料,就不建立excel檔案。但是,目錄已經建立好了)。
一開始不去建立目錄,就不會有這些破事,但,事情就是這樣,沒辦法
當然,文章的核心主旨還是要刪除空目錄
/**
* 遞迴刪除目錄下的所有空目錄
* * @param path 將要刪除的檔案目錄
* @param basepathstr 根目錄的字串,用來判斷遞迴是否結束
* @param flag 首次呼叫true,之後,都是false
* @throws ioexception
*/public static void deleteemptydir(path path,string basepathstr,boolean flag) throws ioexception
}else}}
}
@test
public void test1() throws ioexception
Linux刪除空目錄
今天整理東西。需要刪掉小於5m的檔案。乙個find就可以了 find type f size 5m exec rm f 然後需要刪掉所有的空目錄。沒想到簡單的命令,於是組合一下命令 bin bash filename rm empty dir.shfor i in find type d doif ...
Linux rmdir命令 刪除空目錄
和 mkdir 命令 建立空目錄 恰好相反,rmdir remove empty directories 的縮寫 命令用於刪除空目錄,此命令的基本格式為 root localhost rmdir p 目錄名 p 選項用於遞迴刪除空目錄。例 1 root localhost rmdir cangls ...
Linux rmdir命令 刪除空目錄
和 mkdir 命令 建立空目錄 恰好相反,rmdir remove empty directories 的縮寫 命令用於刪除空目錄,此命令的基本格式為 root localhost rmdir p 目錄名 p 選項用於遞迴刪除空目錄。例 1 root localhost rmdir cangls ...