Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在SD卡上存储文件(外部)_Android_File_Android Sdcard - Fatal编程技术网

Android 如何在SD卡上存储文件(外部)

Android 如何在SD卡上存储文件(外部),android,file,android-sdcard,Android,File,Android Sdcard,我想使用file在SD卡上存储一个文件。我已经实现了在外部存储器中存储文件(在我的文件浏览器应用程序中命名为内部存储器。这不是SD卡) 我读了很多关于在SD卡上存储数据的书,经常看到: new File(Environment.getExternalStorageDirectory() + "/MyFile") 但这会将文件存储在外部存储器上,而不是存储在SD卡上。那么,如何将文件存储在SD卡上而不是外部存储器上呢?理想情况下,您可以使用存储访问框架(例如,操作\u创建\u文档)并让用户选择将

我想使用
file
在SD卡上存储一个文件。我已经实现了在外部存储器中存储文件(在我的文件浏览器应用程序中命名为内部存储器。这不是SD卡)

我读了很多关于在SD卡上存储数据的书,经常看到:

new File(Environment.getExternalStorageDirectory() + "/MyFile")

但这会将文件存储在外部存储器上,而不是存储在SD卡上。那么,如何将文件存储在SD卡上而不是外部存储器上呢?

理想情况下,您可以使用存储访问框架(例如,
操作\u创建\u文档
)并让用户选择将此内容放在何处。用户可能希望将内容放在其他地方。例如,用户可能没有可移动存储器


暂时欢迎您使用
getExternalFilesDirs()
Context
上的类似方法。如果这些返回2+个元素,则第二个和后续的元素是可移动存储上的位置。在Android 4.4+上,您的应用程序可以在没有任何特定权限的情况下写入这些位置。Android Q在这里改变了很多规则,这也是改用存储访问框架的另一个原因。

使用它可以帮助您:


参数是什么?我必须设置什么there@JonasPTFL:我不确定你指的是什么参数。如果您是指
getExternalFilesDirs()
的参数,请传入
null
Environment.DIRECTORY.*
值之一,例如
Environment.DIRECTORY.\u MUSIC
。更多信息请参见。是的,对不起,这是我的错!好的,我将null作为参数传递,但该方法将返回一个文件数组。。。我与此有什么关系?@jonastfl:如果阵列中只有一个元素,则用户没有任何可移动存储。如果用户在阵列中有2+个元素,则第二个和后续的元素将指向可移动存储上特定于应用程序的位置。您可以使用这些作为创建文件、子目录等的基本目录。好的,非常感谢!我成功地将文件存储在sd卡上,但在Android/data/my.app.package/文件夹中。。。我也可以将它存储在主文件夹中吗?Android文件夹在哪里?
Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)