2017-06-29 8 views
0

SDカードの外部ストレージ(音楽、写真など)に保存されているファイルのリストを取得したり、ファイルの内容を変更したり、Android 5.0以降の古いファイルを上書きするにはどうすればよいですか?Androidのsdカードのパブリックストレージにファイルを書き込む/変更するには?

+0

外部記憶装置はSDカードとほとんど関係ありません。 [外部ストレージ](https://commonsware.com/blog/2014/04/08/storage-situation-external-storage.html)または[リムーバブルストレージ](https://共有メモリ)を指しているかどうかを明確にしてください。 com/blog/2014/04/09/storage-situation-removable-storage.html)。 – CommonsWare

+0

取り外し可能なストレージ。私は例えば私のSDカードに持っている音楽。 ** **私のアプリのプライベートスペースではありません。 –

答えて

1

厳密には可能ではありません。

あなたが得ようとしている最も近いです:

  • は、文書ツリーを選択するユーザーを取得するにはACTION_OPEN_DOCUMENT_TREEを使用してください。ユーザは、ユーザが望むものを選択することができる。それはfromTreeUri()を使用してDocumentFileでそれをラップし、あなたが戻ってACTION_OPEN_DOCUMENT_TREE活動から得るUri考える

  • などの外部記憶装置、Googleドライブ、可能性がリムーバブルストレージ—である必要はありません。そこから

  • は、あなたのようなビットは、ドキュメントツリーを歩いて再帰的にlistFiles()isDirectory()を使用して、Fileを使用するDocumentFileを使用しています。あなたは、変更内容のその部分についてUriを取得するためにDocumentFilegetUri()を使用し、コンテンツを読み込むことContentResolveropenInputStream()を使用して、あなたの修正を書き出すためにContentResolveropenOutputStream()を使いたいどんな内容については

  • コンテンツ。

+0

ありがとうございます。これはファイル管理者が使用する方法ですか? –

+0

@VasilKalchev:私は一度も書いたことがないので、私は分かりません。 Amazeはオープンソースです。リムーバブルストレージとその機能をサポートしているかどうかを確認できます。 – CommonsWare

+1

FileManagersは、DocumentFileを使用してファイルのリストを作成することはありません。代わりに、DocumentsContractを使用します。 – greenapps

関連する問題