在我的android代码中,deleteRecursive方法似乎可以正常工作,但是当我将代码保留在 onPostExecute 方法中时,它显示错误,提示
无法解析方法isDirectory(), 在deleteRecursive(child)中预期的方法调用 无法解析方法delete()
这是我的代码,
@Override
protected void onPostExecute(JSONObject json) {
super.onPostExecute(json);
int success = 0;
if (pDialog != null && pDialog.isShowing()) {
pDialog.dismiss();
}
if (json != null) {
try {
success = json.getInt(TAG_SUCCESS);
} catch (JSONException e) {
e.printStackTrace();
}
}
if (success == 1) {
String fileOrDirectory = finalSavePath + "/";
public void deleteRecursive(File fileOrDirectory) {
if (fileOrDirectory.isDirectory()) {
for (File child : fileOrDirectory.listFiles()) {
deleteRecursive(child);
}
fileOrDirectory.delete();
}
} else {
Toast.makeText(context, "Sorry, cannot Delete", Toast.LENGTH_LONG).show();
}
}
}
我了解我很想念一些愚蠢的东西,对您的任何帮助将不胜感激。
答案 0 :(得分:0)
您无法在if else语句中创建方法
尝试一下
public static void deleteFilesAndFolders(File fileOrDirectory) {
if (fileOrDirectory.isDirectory())
for (File child : fileOrDirectory.listFiles())
deleteFilesAndFolders(child);
fileOrDirectory.delete();
}
直接在您的语句中调用deleteFilesAndFolders(fileOrDirectory)。
答案 1 :(得分:0)
您已经在函数内部创建了函数,就是问题所在。
尝试如下更改代码...
@Override
protected void onPostExecute(JSONObject json) {
super.onPostExecute(json);
int success = 0;
if (pDialog != null && pDialog.isShowing()) {
pDialog.dismiss();
}
if (json != null) {
try {
success = json.getInt(TAG_SUCCESS);
} catch (JSONException e) {
e.printStackTrace();
}
}
if (success == 1) {
String fileOrDirectory = finalSavePath + "/";
deleteRecursive(new File(fileOrDirectory));
}else{
Toast.makeText(context, "Sorry, cannot Delete", Toast.LENGTH_LONG).show();
}
}
public void deleteRecursive(File fileOrDirectory) {
if (fileOrDirectory.isDirectory())
for (File child : fileOrDirectory.listFiles())
deleteRecursive(child);
fileOrDirectory.delete();
}