回答編集履歴
6
パスの直接記述は互換性の観点で推奨されないので訂正
test
CHANGED
@@ -20,9 +20,15 @@
|
|
20
20
|
|
21
21
|
```Java
|
22
22
|
|
23
|
-
File from = new File(
|
23
|
+
File from = new File(Environment.getExternalStorageDirectory() + "/sample/A");
|
24
24
|
|
25
25
|
```
|
26
|
+
|
27
|
+
(11/08 23:46 訂正)
|
28
|
+
|
29
|
+
**パスの直接記述は推奨されません**。うっかり直接記述で回答してしまいましたが、内部ストレージのパスを得るにはEnvironment.getExternalStorageDirectory()を用いるべきなので、訂正しました。
|
30
|
+
|
31
|
+
(訂正おわり)
|
26
32
|
|
27
33
|
|
28
34
|
|
@@ -88,4 +94,4 @@
|
|
88
94
|
|
89
95
|
|
90
96
|
|
91
|
-
ものすご〜〜〜〜く長い回答で申し訳ないのだけど、この辺の要点を一つ一つクリアしながら作成してみてはいかがでしょうか。一気にゴールを目指そうとしないと
|
97
|
+
ものすご〜〜〜〜く長い回答で申し訳ないのだけど、この辺の要点を一つ一つクリアしながら作成してみてはいかがでしょうか。一気にゴールを目指そうとしないことです。アプリ開発は基礎知識の積み重ねですから。
|
5
推敲
test
CHANGED
@@ -76,7 +76,7 @@
|
|
76
76
|
|
77
77
|
|
78
78
|
|
79
|
-
getExternalFilesDirsの引数をnullにすると、パッケージ名の下にさらにfiles
|
79
|
+
getExternalFilesDirsの引数をnullにすると、パッケージ名の下にさらにfilesディレクトリーがくっつくのですが、パッケージ名の直下に置かれるディレクトリーには役割があるので、特殊な事情でもない限りはそれに従うのが良策と思います。
|
80
80
|
|
81
81
|
|
82
82
|
|
@@ -88,4 +88,4 @@
|
|
88
88
|
|
89
89
|
|
90
90
|
|
91
|
-
ものすご〜〜〜〜く長い回答で申し訳ないのだけど、この辺の要点を一つ一つクリアしながら作成してみてはいかがでしょうか。
|
91
|
+
ものすご〜〜〜〜く長い回答で申し訳ないのだけど、この辺の要点を一つ一つクリアしながら作成してみてはいかがでしょうか。一気にゴールを目指そうとしないとこです。アプリ開発は基礎知識の積み重ねですから。
|
4
再修正
test
CHANGED
@@ -80,7 +80,7 @@
|
|
80
80
|
|
81
81
|
|
82
82
|
|
83
|
-
で、最後にファイル移動ですが、一般的にはFile#renameToというメソッドを使う方法がありますが、「内部ストレージからSDカード」のような異なるメディアの移動には使えないので、単純に「コピー元ファイルの内容を全部読み取ってコピー先ファイルに書き出す」みたいな作業になってしまうのではないでしょうか。[このサイト](https://www.sejuku.net/blog/20689)の「java.io.Fileクラスを使用してコピーする」として紹介されているような感じでしょうか。ここは他にもいろいろ方法はありそうですが。
|
83
|
+
で、最後にファイル移動ですが、一般的にはFile#renameToというメソッドを使う方法がありますが、「内部ストレージからSDカード」のような異なるメディア間の移動には使えないようなので(常識なのかな?)、単純に「コピー元ファイルの内容を全部読み取ってコピー先ファイルに書き出す」みたいな作業になってしまうのではないでしょうか。[このサイト](https://www.sejuku.net/blog/20689)の「java.io.Fileクラスを使用してコピーする」として紹介されているような感じでしょうか。ここは他にもいろいろ方法はありそうですが。
|
84
84
|
|
85
85
|
|
86
86
|
|
3
文章の修正
test
CHANGED
@@ -80,11 +80,7 @@
|
|
80
80
|
|
81
81
|
|
82
82
|
|
83
|
-
で、最後にファイル移動ですが、一般的にはFile#renameToというメソッドを使う方法がありますが、内部ストレージからSDカード
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
ですから、単純に「コピー元ファイルの内容を全部読み取ってコピー先ファイルに書き出す」みたいな作業になってしまうのではないでしょうか。[このサイト](https://www.sejuku.net/blog/20689)の「java.io.Fileクラスを使用してコピーする」として紹介されている方法を使う感じでしょうか。
|
83
|
+
で、最後にファイル移動ですが、一般的にはFile#renameToというメソッドを使う方法がありますが、「内部ストレージからSDカード」のような異なるメディアの移動には使えないので、単純に「コピー元ファイルの内容を全部読み取ってコピー先ファイルに書き出す」みたいな作業になってしまうのではないでしょうか。[このサイト](https://www.sejuku.net/blog/20689)の「java.io.Fileクラスを使用してコピーする」として紹介されているような感じでしょうか。ここは他にもいろいろ方法はありそうですが。
|
88
84
|
|
89
85
|
|
90
86
|
|
2
文章修正
test
CHANGED
@@ -42,7 +42,7 @@
|
|
42
42
|
|
43
43
|
|
44
44
|
|
45
|
-
次に、SDカードのパッケージ専用ディレクトリーのパスを得るには、Context#getExternalFilesDirsを用いましょう。SDカードのパス名は`/storage/<SDカードのUUID>/`という構成になっています。UUIDはSDカードごとに異なる一意の値になるので、SDカードを差し替えると別の値になります。ここを決め打ちしてしまうと、「今差しているSDカードでしか動かないプログラム」になってしまいます。それでは多分困るでしょう。
|
45
|
+
次に、外部ストレージ(以下、SDカード)のパッケージ専用ディレクトリーのパスを得るには、Context#getExternalFilesDirsを用いましょう。SDカードのパス名は`/storage/<SDカードのUUID>/`という構成になっています。UUIDはSDカードごとに異なる一意の値になるので、SDカードを差し替えると別の値になります。ここを決め打ちしてしまうと、「今差しているSDカードでしか動かないプログラム」になってしまいます。それでは多分困るでしょう。
|
46
46
|
|
47
47
|
|
48
48
|
|
@@ -80,7 +80,7 @@
|
|
80
80
|
|
81
81
|
|
82
82
|
|
83
|
-
で、最後
|
83
|
+
で、最後にファイル移動ですが、一般的にはFile#renameToというメソッドを使う方法がありますが、内部ストレージからSDカードという異なるメディアの移動には使えないようですね。[Android SDKのrenameToメソッドのリファレンス](https://developer.android.com/reference/java/io/File.html#renameTo(java.io.File))にも、同じメディア間でなければならないようなことが書いてあります。内部ストレージから内部ストレージ、SDカードからSDカードならrenameToで移動可能なことは確認したのですが、跨ぐとだめみたいです。
|
84
84
|
|
85
85
|
|
86
86
|
|
1
一文追加
test
CHANGED
@@ -80,7 +80,7 @@
|
|
80
80
|
|
81
81
|
|
82
82
|
|
83
|
-
で、最後の移動ですが、Javaの一般的なファイル移動方法としてはFile#renameToというメソッドを使う方法がありますが、内部ストレージから外部ストレージという異なるメディアの移動にはこの方法は使えないようですね。[Android SDKのrenameToメソッドのリファレンス](https://developer.android.com/reference/java/io/File.html#renameTo(java.io.File))にも、同じメディア間でなければならないようなことが書いてあります。
|
83
|
+
で、最後の移動ですが、Javaの一般的なファイル移動方法としてはFile#renameToというメソッドを使う方法がありますが、内部ストレージから外部ストレージという異なるメディアの移動にはこの方法は使えないようですね。[Android SDKのrenameToメソッドのリファレンス](https://developer.android.com/reference/java/io/File.html#renameTo(java.io.File))にも、同じメディア間でなければならないようなことが書いてあります。内部ストレージから内部ストレージ、SDカードからSDカードならrenameToで移動可能なことは確認したのですが、跨ぐとだめみたいです。
|
84
84
|
|
85
85
|
|
86
86
|
|