上の画像を考えてみてください。内部ストレージのフォルダとファイルが表示されます。私の問題は、内部ストレージの絶対パスを取得できないことです。使ってみた
文字列パス= getFilesDir()。getAbsolutePath();
しかし、それは私に私のアプリストレージのパスを与えています。私の目的は、アプリのプライベートストレージから内部ストレージの上部にファイルをバックアップすることです。そして、私はウェブで解決策を見つけることができず、スタックオーバーフローでも解決策を見つけることができません。この問題の解決策を提案してください!
Environment.getExternalStorageDirectory();
プライマリ共有/外部ストレージディレクトリを返します。
注:ここで「外部」という言葉を混同しないでください。このディレクトリは、メディア/共有ストレージと考えるのがよいでしょう。これは、比較的大量のデータを保持できるファイルシステムであり、すべてのアプリケーションで共有されます(権限を適用しません)。これは伝統的にSDカードですが、保護された内部ストレージとは別のデバイスの組み込みストレージとして実装することもでき、ファイルシステムとしてコンピューターにマウントできます。
File dir = Environment.getExternalStorageDirectory();
String path = dir.getAbsolutePath();
内部ストレージの上部にアクセスするために次のパスを使用しています:
/storage/emulated/0/my_file.txt
このため、ルート権限は必要ありません。
Rootアクセスでのみ可能です。バックアップを外部ストレージに書き込んで、誰でも読み取り可能にする必要があります。 Android docsによると、ファイルを他のアプリと共有したり、アプリを削除した後でもこのファイルを保存したりする場合は、外部ストレージに保存する必要があります。 Android docs