问题
I want to store a file on the SD card using File
. I already achieved to store a file in external storage (named internal storage in my file explorer app. This is NOT the SD card).
I read much about storing data on SD cards and often saw:
new File(Environment.getExternalStorageDirectory() + "/MyFile")
But this will store the file on external storage and not on the SD card. So how can I store a file on the SD card and not on external storage?
回答1:
Ideally, you use the Storage Access Framework (e.g., ACTION_CREATE_DOCUMENT
) and let the user choose where the user wants to put this content. The user may wish to put the content somewhere else. For example, the user may not have removable storage.
Temporarily, you are welcome to use getExternalFilesDirs()
and similar methods on Context
. If these return 2+ elements, the second and subsequent ones are locations on removable storage. On Android 4.4+, your app can write to those locations without any particular permissions. Android Q is changing the rules here a lot, which is another reason to use the Storage Access Framework instead.
回答2:
Using this may help you:
An answer to Stack Overflow question How do I get the external storage's path?
Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)
来源:https://stackoverflow.com/questions/55982246/how-to-store-a-file-on-an-sd-card-external