我正在尝试将文件写入手机.
我曾经Environment.getDataDirectory()知道内部存储的路径并Environment.getExternamStorageDirectory()知道外部存储的路径.
但是当我使用Environment.getExternalStorageDirectory()路径时,文件是在内部存储中创建的.当我使用Environment.GetDataStorage()路径时,文件不会被创建.(这不确定,但我至少在资源管理器应用程序中找不到.)
我认为我的手机的内部存储被视为外部存储.(在我的情况下,它有32GB的存储空间)
我想知道可移动存储(例如micro SD card)路径.我该怎么办?
小智 8
来自getExternalStorageDirectory()的官方文档
不要在这里混淆"外部"这个词.此目录最好被视为媒体/共享存储.它是一个文件系统,可以容纳相对大量的数据,并在所有应用程序之间共享(不强制执行权限).传统上,这是一张SD卡,但它也可以作为与受保护的内部存储不同的设备中的内置存储实现,并且可以作为文件系统安装在计算机上.
因此,它可能与设备中的内置存储不同.
对于您的情况您可以使用getExternalStoragePublicDirectory(java.lang.String)
这是用户通常放置和管理自己文件的地方
此处的路径应为DIRECTORY_MUSIC,DIRECTORY_PODCASTS,DIRECTORY_RINGTONES,DIRECTORY_ALARMS,DIRECTORY_NOTIFICATIONS,DIRECTORY_PICTURES,DIRECTORY_MOVIES,DIRECTORY_DOWNLOADS或DIRECTORY_DCIM之一.不能为空.
或者,如果您希望在用户卸载应用程序时删除数据,则可以使用getExternalFilesDir()
由于这些文件是应用程序的内部文件,因此用户通常不会将其视为媒体.
getFilesDir()和getExternalFilesDir()之间也存在一些差异
外部文件并非始终可用:如果用户将外部存储装入计算机或将其删除,它们将消失.有关存储状态的信息,请参阅环境中的API.
这些文件没有强制执行安全性.例如,任何持有WRITE_EXTERNAL_STORAGE的应用程序都可以写入这些文件.
| 归档时间: |
|
| 查看次数: |
35381 次 |
| 最近记录: |