私はこのロジックを使用してsdcardのファイルを削除しています。すべてのファイルを削除していますが、ファイル削除操作中にログに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