Androidアプリをjavaで作成しています。
アプリ起動時に、標準のフォルダ(例えば、\data\data\・・・)に指定したファイル(例えば、test.txt)が存在するか確認したいのですが、書き方が分かりません。
以下のようにexits()を使えばできそうなのですが、ファイルの絶対パスが必要そうです。
しかし、Androidでは、バージョンによって標準のフォルダが変わるので、絶対パスでは推奨されないということが調べたら出てきました。
Java
1File file = new File("c:¥¥data¥¥test.txt"); 2if (file.exists()){ 3 System.out.println("存在する"); 4}else{ 5 System.out.println("存在しない"); 6}
相対パス、又はファイル名だけでファイルの存在を確認する方法がありましたら教えて頂けますでしょうか。
何を起点とした相対ですか?
コメントありがとうございます。
説明不足ですみませんでいた。
https://techbooster.org/android/application/1629/
このページにあるように openFileOutput (String name, int mode) を使うと、何も考えずに標準のフォルダにファイル名(String name)のファイルが出来るのです。
この標準のフォルダに指定したファイルが存在するかどうかを知りたかったのです。
さらに調べたところ、以下の書き方がヒントのように思いました。
java.io.File file = getApplicationContext().getFileStreamPath("FILENAME");
if (file.exists()){
file.delete();
}
このページで見つけました。
http://7ujm.net/android/file.html
まず、Android は Linux なので、パスの区切り文字は \ ではなく / です。
で、「絶対パスでは推奨されない」というのは、/data/test.txt のような固定のパスを書いちゃ駄目という意味で、実際には書き込み可能なストレージの絶対パスを実行時に OS の問い合わせて取得して、それを利用することになります。
ありがとうございます。
「実際には書き込み可能なストレージの絶対パスを実行時に OS の問い合わせて取得して、それを利用することになります。 」
この部分が特に私の考えの中で落ちていた所でした。
理解が深まりました。
回答3件
あなたの回答
tips
プレビュー