• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:アンドロイド用に指定パスのファイルの削除したいです)

アンドロイド用の指定パスのファイル削除方法

このQ&Aのポイント
  • アンドロイド用に指定パスのファイルを削除する方法についてご教授ください
  • 開発環境はEclipseを使用しており、ウィンドウを表示せずに処理のみを行うアプリを作成したいです
  • 現在どのウィザードを使用すれば良いのかわからない状態で、参考サイトも複数ありますがどこに何を書けば良いのか分かりません

質問者が選んだベストアンサー

  • ベストアンサー
  • OKTaro-
  • ベストアンサー率50% (36/72)
回答No.2

参考URLを拝見しました。 上のURLではthis.fileList()のメソッドを実装して削除したいファイルの一覧を返す処理を作らなければ動きません 下のURLではnew File("mydir")とあるのでこのファイルが無ければ何もおきません。 なので、delete(new File("/XXX")); // XXXは消したいファイル又はディレクトリのパス とすれば任意のファイルを削除出来るでしょう。 Activityクラスに以下のような感じで実装します protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); delete(new File("/XXX")); finish(); // 起動した画面を終了させます } Androidではファイル削除には権限が必要なのでAndroidManifest.xmlに <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> を追記して書き込み権限をアプリに与えてあげる必要があります。 ただ、ファイルの削除という行為は非常に危険なので、プログラムの基礎をしっかり理解してから実装する事をオススメします。 実機で実装してうっかり重要なファイルを壊して動かなくなった…! なんて事になったら大変ですからね… プログラムの作成にショートカットはありません。基礎をしっかり勉強する事が大事です。 逆に基礎以外はほぼ学ぶものは無いと言っても過言ではありません。後は全部応用みたいなものですから

maruboro007
質問者

お礼

ありがとうございます。

maruboro007
質問者

補足

回答ありがとうございます。 エラーなく実行することはできました。 権限も許可してあります。 ただ、削除したいファイルが削除できませんでした。 delete(new File("/XXX")); は使えませんでした。 アンドロイドだからかインポートがたりないのかわかりませんでした。 従って以下のものを採用しました。 File file = new File(("XXX); file.delete(); パスの指定の仕方が悪いのかと思い、以下のものも試してみましたが駄目でした。 どうすればよいでしょうか。 ("/data/data/jp.co/","data.bin"); ("/data/data/jp.co/data.bin"); 以下ソースコードになります。 package com.example.mrmr; import java.io.File; import android.app.Activity; import android.os.Bundle; public class MyAndroidApplActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); File file = new File(("/data/data/jp.co","data10.bin"); file.delete(); } }

すると、全ての回答が全文表示されます。

その他の回答 (3)

  • OKTaro-
  • ベストアンサー率50% (36/72)
回答No.4

補足に回答します 他のアプリの管理下にあるファイルはセキュリティの仕様上消すことは出来ません OSの設定画面から見れるアプリ情報から「データ削除」で消すことは出来ますが、他のアプリからは不可能です 消したいアプリ側がそういう事ができる手段を提供していない限り。 root化すれば出来るかもしれませんがリスクもたくさんあるため普通はしないでしょう。

maruboro007
質問者

お礼

ありがとうございます。

maruboro007
質問者

補足

回答ありがとうございました。

すると、全ての回答が全文表示されます。
  • OKTaro-
  • ベストアンサー率50% (36/72)
回答No.3

補足がありましたので再度回答します >delete(new File("/XXX")); は使えませんでした。 >アンドロイドだからかインポートがたりないのかわかりませんでした。 提示された参考URL http://www.my-notebook.net/10d38888-00d9-4fd0-8fe9-1fc60dfa4f5d.html に記載のある static private void delete(File f) のメソッドを実装していないからでしょう。 file.deleteとの違いはディレクトリを指定した場合に中身を削除する事ができるかどうかです。 で、実行してもファイルが削除出来なかった、という事についてですが もしや別のアプリで管理しているファイルを削除しようとしていらっしゃるのでしょうか? /data/data/の中にあるディレクトリはアプリ毎になっており、基本的にそのファイルに関しては”自分のアプリ領域のもの”しか触れないようになっています。 他のアプリが勝手に書き換えたりできては困るからです。 ブラウザでダウンロードした画像とか自分で自由に置いたものなどは削除出来るはずです。 消そうとしているファイルをよく確認してみてください。

maruboro007
質問者

お礼

ありがとうございます。

maruboro007
質問者

補足

回答ありがとうございます。 別のアプリで管理しているファイルを削除したいです。 なにか方法はないでしょうか。

すると、全ての回答が全文表示されます。
  • y_shimizu
  • ベストアンサー率41% (27/65)
回答No.1

正直、何がわからないのかわからないです。 > アンドロイド用に指定パスのファイルの削除したいです ストレージ内のファイルを削除するアプリを作りたい、という意味でしょうか? > 現在どのウィザードを使えばいいのかもわからない状態です。 ただのEclipseですか?それともAndroid開発用のEclipse拡張IDEかなにかでしょうか? > 導入を終え、HELLO WORLDの表示が終わった段階です。 > JAVAを使うのは初めてです。 HELLO WORLDの表示とはコンソールアプリでですか?Androidのエミュレータでですか? Activityやライフサイクル云々とかの理解はありますか?またはそれ以前にJavaも拙いということでしょうか?

maruboro007
質問者

お礼

ありがとうございます。

maruboro007
質問者

補足

>ストレージ内のファイルを削除するアプリを作りたい、という意味でしょうか? はい、そうです。 >ただのEclipseですか?それともAndroid開発用のEclipse拡張IDEかなにかでしょうか? ANDROIDSDKを落として使っています。 >HELLO WORLDの表示とはコンソールアプリでですか?Androidのエミュレータでですか? >Activityやライフサイクル云々とかの理解はありますか?またはそれ以前にJavaも拙いと>いうことでしょうか? エミュレータです。 Activityの理解はありません。Javaもはじめて使います。

すると、全ての回答が全文表示されます。

関連するQ&A