回答編集履歴
4
回答の方向性を改めた
answer
CHANGED
@@ -1,14 +1,12 @@
|
|
1
1
|
システムのプライベート領域にAPIを使ってファイルを書き出したとき、その標準的な保存先は
|
2
2
|
/data/user/0/<パッケージ名>/files/
|
3
|
-
の下のはずです。ですから、
|
3
|
+
の下のはずです。ですから、格納先のフルパスの認識に誤りがあった(filesが抜けていた)だけではないのでしょうか?
|
4
4
|
|
5
|
-
ただし、
|
5
|
+
ただし、フルパスの直接入力による方法は推奨されません。ご承知のようですがAndroidバージョンによって変化することがありますし、それ以外にもメーカーの独自実装によって違う場所が標準とされることもあります。
|
6
6
|
|
7
7
|
getFileStreamPath()は引数にファイル名を入れてそのフルパスを返しますが、格納するパスだけを得たいならgetFilesDir()というAPIもあります。
|
8
8
|
```Java
|
9
9
|
File file = new File(getFilesDir() + "/" + "a.jpg");
|
10
10
|
if (file.exists())
|
11
11
|
```
|
12
|
-
と
|
12
|
+
としても、「正しい結果」を得られるのではないかと思います。
|
13
|
-
|
14
|
-
でもこれで回答になるんでしょうか?「APIを使わずに解決したい」のか、こうした別のAPIを提示すれば良かったのか、何を回答とすれば要件を満たせるのか今ひとつわかりません・・・。
|
3
コード間違い
answer
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
|
7
7
|
getFileStreamPath()は引数にファイル名を入れてそのフルパスを返しますが、格納するパスだけを得たいならgetFilesDir()というAPIもあります。
|
8
8
|
```Java
|
9
|
-
File
|
9
|
+
File file = new File(getFilesDir() + "/" + "a.jpg");
|
10
10
|
if (file.exists())
|
11
11
|
```
|
12
12
|
とすれば、「正しい結果」は得られるのではないかと思います。
|
2
修正・追記
answer
CHANGED
@@ -4,4 +4,11 @@
|
|
4
4
|
|
5
5
|
ただし、絶対パスの直接入力による方法は推奨されません。ご承知のようですがAndroidバージョンによって変化することがありますし、それ以外にもメーカーの独自実装によって違う場所が標準とされることもあります(そのためにfilesを含まない場所に格納されたとか?そんな端末あるのかな?)。
|
6
6
|
|
7
|
-
getFileStreamPath()は引数にファイル名を入れてそのフルパスを返しますが、格納するパスだけを得たいならgetFilesDir()というAPIもあります。
|
7
|
+
getFileStreamPath()は引数にファイル名を入れてそのフルパスを返しますが、格納するパスだけを得たいならgetFilesDir()というAPIもあります。
|
8
|
+
```Java
|
9
|
+
File privatefile = new File(getFilesDir() + "/" + "a.jpg");
|
10
|
+
if (file.exists())
|
11
|
+
```
|
12
|
+
とすれば、「正しい結果」は得られるのではないかと思います。
|
13
|
+
|
14
|
+
でもこれで回答になるんでしょうか?「APIを使わずに解決したい」のか、こうした別のAPIを提示すれば良かったのか、何を回答とすれば要件を満たせるのか今ひとつわかりません・・・。
|
1
追記
answer
CHANGED
@@ -2,4 +2,6 @@
|
|
2
2
|
/data/user/0/<パッケージ名>/files/
|
3
3
|
の下のはずです。ですから、絶対パスの記述にfilesが足りなかったのだろうと思いますが、filesを含まないものが「正しいフルパスであることが分かった」のは何故でしょう?
|
4
4
|
|
5
|
+
ただし、絶対パスの直接入力による方法は推奨されません。ご承知のようですがAndroidバージョンによって変化することがありますし、それ以外にもメーカーの独自実装によって違う場所が標準とされることもあります(そのためにfilesを含まない場所に格納されたとか?そんな端末あるのかな?)。
|
6
|
+
|
5
7
|
getFileStreamPath()は引数にファイル名を入れてそのフルパスを返しますが、格納するパスだけを得たいならgetFilesDir()というAPIもあります。でもこれで回答になるんでしょうか?何を回答とすれば要件を満たせるのか、今ひとつわかりません・・・。
|