teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

USB接続の方法による違いについて追記

2020/01/25 10:58

投稿

dodox86
dodox86

スコア9380

answer CHANGED
@@ -1,8 +1,8 @@
1
1
  > 逆にOpenFileDialogを使用して、Androidアプリで作成したファイルをコピーすることはできたのですが、その逆はできないのでしょうか?
2
2
 
3
- 残念ですが、この場合はできないと言って差し支えないです。
3
+ ~~残念ですが、この場合はできないと言って差し支えないです。~~
4
4
 
5
- お使いのAndroid端末のAndroidバージョンや製品によってある程度の違いはあるかもしれませんが、Android端末をWindowsにUSB接続したときのファイルシステムのせいだと考えられます。以下の画像は私の手持ちのAndroid端末(ASUS A007 /Android 6.0.1)をWindows 10 PCに接続して、内部ストレージを表示したものです。
5
+ お使いのAndroid端末のAndroidバージョンや製品によってある程度の違いはあるかもしれませんが、Android端末をWindowsにUSB接続したときのファイルシステムのせいだと考えられます。(**※USB接続の仕方によるようです。追記部分をご覧ください)**以下の画像は私の手持ちのAndroid端末(ASUS A007 /Android 6.0.1)をWindows 10 PCに接続して、内部ストレージを表示したものです。
6
6
 
7
7
  ![イメージ説明](3943ce40897ed6c7a8ed62a23d53753f.png)
8
8
 
@@ -14,4 +14,13 @@
14
14
 
15
15
  これはできないと思ってください。Android端末によりますがUSBメモリーを接続すると外部ストレージとして使えるものがあります。これはUSBの「マスストレージ」として認識できるようになっている為で、PCが持っているディスクを外部ストレージをしてみせるのは、USB接続をしたときにPC側がマスストレージとしてふるまう必要があります。過去に以下のような製品がありましたが、こういったものを使えばお望みの動作ができる可能性があります。※反対に言えば、一般的にはできない動作、と言うことです。
16
16
 
17
- [PCをUSBマスストレージデバイスにするケーブル発売 - AKIBA PC Hotline 2011年1月15日号](https://akiba-pc.watch.impress.co.jp/hotline/20110115/etc_usbl.html)
17
+ [PCをUSBマスストレージデバイスにするケーブル発売 - AKIBA PC Hotline 2011年1月15日号](https://akiba-pc.watch.impress.co.jp/hotline/20110115/etc_usbl.html)
18
+
19
+ ---
20
+ **追記しました: 2020-01-25 19:58**
21
+
22
+ 「汎用階層形式」のファイルシステムは、Android端末にUSB接続したときに「メディアデバイス(MTP)」を選択したときに出るものでした。以下の画像は先に挙げたASUS A007とは別のAndroid端末(Android 4.4)のもので、USB接続したときの選択画面です。
23
+ ![イメージ説明](91c78840150d1f4b5b8650d41b216054.png)
24
+ ここで「メディアデバイス(MTP)」を選択すればAndroid端末へのファイルのコピーはできなくなりますし、「USBストレージ」を選択するとAndroid端末はPCから見て単なるUSBメモリーになり、ファイルのコピーができるようになります。
25
+
26
+ 質問者さんのAndroid端末でどのようになるか確認してみてください。「USBストレージ」を選択できれば、PCからファイルコピーできるはずです。ASUS A007では「USBストレージ」の選択肢が無いので、やはりWindowsからAndroid側へのコピーはできません。ASUS A007ではマイクロSDカードなどの外部メディアを挿入できるので、その辺も加味したカスタマイズがされているかもしれません。Android実機によるというのは言えていそうです。

1

誤字

2020/01/25 10:58

投稿

dodox86
dodox86

スコア9380

answer CHANGED
@@ -2,13 +2,13 @@
2
2
 
3
3
  残念ですが、この場合はできないと言って差し支えないです。
4
4
 
5
- お使いのAndroid端末のAndroidバージョンや製品によってある程度の違いはあるかもしれませんが、Andorid端末をWindowsにUSB接続したときのファイルシステムのせいだと考えられます。以下の画像は私の手持ちのAndroid端末(ASUS A007 /Android 6.0.1)をWindows 10 PCに接続して、内部ストレージを表示したものです。
5
+ お使いのAndroid端末のAndroidバージョンや製品によってある程度の違いはあるかもしれませんが、Android端末をWindowsにUSB接続したときのファイルシステムのせいだと考えられます。以下の画像は私の手持ちのAndroid端末(ASUS A007 /Android 6.0.1)をWindows 10 PCに接続して、内部ストレージを表示したものです。
6
6
 
7
7
  ![イメージ説明](3943ce40897ed6c7a8ed62a23d53753f.png)
8
8
 
9
9
  ここで、右側に「汎用階層形式」と言うファイルシステム名称が表示されています。これは著作権保護を意識したファイルシステムで、ファイルコピーの際に制限をかけます。(左側に表示されている内部ストレージのアイコンが音楽プレーヤーになっていることが、それを示唆しています)Android自体の内部のファイルシステムはAndroidのカーネル(Linux)で使われるext4のはずですが、USB接続した際にはWindows側でそう見えるように一時的に変換をかけているかたちです。
10
10
 
11
- この「汎用階層形式」のAndroid側のストレージにWindowsのエクスプローラーからアクセスすると、**Androidの内部ストレージにフォルダーを作成することはできますが、ファイルを作成することはできません。**つまり、WindowsからAndroid端末へはファイルがコピーできないのです。これは質問者さんの`OpenFileDialog`でAndroid側からWindows側からはコピーできるが、`SaveFileDialog`でWindows側からAndroid側へコピーできないことと合致します。
11
+ この「汎用階層形式」のAndroid側のストレージにWindowsのエクスプローラーからアクセスすると、**Androidの内部ストレージにフォルダーを作成することはできますが、ファイルを作成することはできません。**つまり、WindowsからAndroid端末へはファイルがコピーできないのです。これは質問者さんの`OpenFileDialog`でAndroid側からWindows側はコピーできるが、`SaveFileDialog`でWindows側からAndroid側へコピーできないことと合致します。
12
12
 
13
13
  > もしくは、Androidアプリ(kotlin)からPCのローカルフォルダを参照して、直接ファイルをコピーすることはできるのでしょうか
14
14