Android(Java)空でないフォルダを削除
Javaは空でないフォルダを削除するAPIを提供していないようです.
フォルダ全体を削除するには、私たち自身が必要です.
実はフォルダのコピー、フォルダの削除、本質的に1つの“ファイルの木”が遍歴する問題です.
粗い人は再帰で実現する.個人的には再帰は絶対に商業コードには使えないと考えている.
次に、フォルダ削除操作のJavaコードを示します.
フォルダ全体を削除するには、私たち自身が必要です.
実はフォルダのコピー、フォルダの削除、本質的に1つの“ファイルの木”が遍歴する問題です.
粗い人は再帰で実現する.個人的には再帰は絶対に商業コードには使えないと考えている.
次に、フォルダ削除操作のJavaコードを示します.
/***
*
* @param f
* @return true, false
*/
static private boolean delFileUnRoot(File f) {
boolean ret = true;
if (null == f || false == f.exists()) {
return ret;
}
Stack tmpFileStack = new Stack();
tmpFileStack.push(f);
try {
while(false == tmpFileStack.isEmpty()) {
File curFile = tmpFileStack.pop();
if (null == curFile) {
continue;
}
if (curFile.isFile()) {
if (false == curFile.delete()) {
ret = false;
}
} else {
File[] tmpSubFileList = curFile.listFiles();
if (null == tmpSubFileList || 0 == tmpSubFileList.length) { //
if (false == curFile.delete()) {
ret = false;
}
} else {
tmpFileStack.push(curFile); // !!!
for (File item : tmpSubFileList) {
tmpFileStack.push(item);
}
}
}
}
} catch (Exception e) {
ret = false;
}
return ret;
}