Я использую эту логику для удаления файлов в SD-карте. Он удаляет все файлы, но я получаю исключения NullPointer в журналах во время операции удаления файла. Любая помощь?Удаление файлов: Исключение NullPointer
Мой код:
void DeleteRecursive(File fileOrDirectory) {
if (fileOrDirectory.isDirectory()) {
try {
for (File child : fileOrDirectory.listFiles()) {
DeleteRecursive(child);
}
} catch (Exception e) {
e.printStackTrace();
}
}
fileOrDirectory.delete();
}
Это сообщение я получаю во время операции удаления:
01-01 01:28:43.440: W/System.err(4183): java.lang.NullPointerException
01-01 01:28:43.450: W/System.err(4183): at com.stericsson.sdcard.Delete_sdcard1Activity.DeleteRecursive(Delete_sdcard1Activity.java:34)
01-01 01:28:43.450: W/System.err(4183): at com.stericsson.sdcard.Delete_sdcard1Activity.DeleteRecursive(Delete_sdcard1Activity.java:35)
01-01 01:28:43.450: W/System.err(4183): at com.stericsson.sdcard.Delete_sdcard1Activity.DeleteRecursive(Delete_sdcard1Activity.java:35)
01-01 01:28:43.450: W/System.err(4183): at com.stericsson.sdcard.Delete_sdcard1Activity.DeleteRecursive(Delete_sdcard1Activity.java:35)
01-01 01:28:43.450: W/System.err(4183): at com.stericsson.sdcard.Delete_sdcard1Activity.DeleteRecursive(Delete_sdcard1Activity.java:35)
01-01 01:28:43.450: W/System.err(4183): at com.stericsson.sdcard.Delete_sdcard1Activity.DeleteRecursive(Delete_sdcard1Activity.java:35)
01-01 01:28:43.450: W/System.err(4183): at com.stericsson.sdcard.Delete_sdcard1Activity.DeleteRecursive(Delete_sdcard1Activity.java:35)
01-01 01:28:43.450: W/System.err(4183): at com.stericsson.sdcard.Delete_sdcard1Activity.DeleteRecursive(Delete_sdcard1Activity.java:35)
01-01 01:28:43.450: W/System.err(4183): at com.stericsson.sdcard.Delete_sdcard1Activity.onCreate(Delete_sdcard1Activity.java:23)
01-01 01:28:43.450: W/System.err(4183): at android.app.Activity.performCreate(Activity.java:4465)
01-01 01:28:43.450: W/System.err(4183): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
01-01 01:28:43.450: W/System.err(4183): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1919)
01-01 01:28:43.450: W/System.err(4183): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1980)
01-01 01:28:43.450: W/System.err(4183): at android.app.ActivityThread.access$600(ActivityThread.java:122)
01-01 01:28:43.450: W/System.err(4183): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1146)
01-01 01:28:43.450: W/System.err(4183): at android.os.Handler.dispatchMessage(Handler.java:99)
01-01 01:28:43.450: W/System.err(4183): at android.os.Looper.loop(Looper.java:137)
01-01 01:28:43.450: W/System.err(4183): at android.app.ActivityThread.main(ActivityThread.java:4340)
01-01 01:28:43.450: W/System.err(4183): at java.lang.reflect.Method.invokeNative(Native Method)
01-01 01:28:43.450: W/System.err(4183): at java.lang.reflect.Method.invoke(Method.java:511)
01-01 01:28:43.450: W/System.err(4183): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
01-01 01:28:43.450: W/System.err(4183): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
01-01 01:28:43.450: W/System.err(4183): at dalvik.system.NativeStart.main(Native Method)
Опубликовать сообщение об исключении также с сообщением. –
Ваш стиль кодирования не является стандартным стилем кодировки java. А также лучше использовать фигурные скобки для включения блоков кода, подобных этому блоку «if», чтобы улучшить читаемость вашего кода. –
Вышеприведенный код в порядке. Можете ли вы поместить полную трассировку стека, которую вы получаете при удалении всех файлов? @Manjla это стиль стиля java standrard. – Acn