之前看到一位网友的吐槽:当我把手机连接到电脑上时,在SD卡根目录看到了成百上千个各种应用程序创建的文件夹,拜托了各位开发者,你真的认为我的手机上只安装你一个app吗?你认为你的app是世界上最重要的app吗?你应该将你的应用数据写到这个路径下!/Android/data/< package name >/files/…

作为一个开发者,我们的确不应该将我们应用的数据直接存到SD卡的根目录下,当手机安装了大量的app时,SD卡根目录会迅速变得杂乱不堪。

这篇文章将带大家区分一下什么样的数据应该存放到什么样的路径下。

App专属文件 vs App独立文件

app专属文件就是那些只有该app才可以使用的文件,例如专属格式的电子书,app独立文件就是那些不依赖于某特定app的文件,例如照片。

App独立文件

这类文件当我们删除应用之后,还应该保留在手机上的,例如拍照的照片,不应该随着删除应用而被删除掉。对于这类文件,Android给我们提供了特定的目录,这些目录都是以DIRECTORY开头的,例如:DIRECTORY_MUSIC , DIRECTORY_PICTURES.

访问这些文件夹有两种方式:

File sdCard = Environment.getExternalStorageDirectory();

这个sdCard的路径为mnt/sdcard/ 即为SD卡根路径,我们可以指定访问的文件夹名

之前看到一位网友的吐槽:当我把手机连接到电脑上时,在SD卡根目录看到了成百上千个各种应用程序创建的文件夹,拜托了各位开发者,你真的认为我的手机上只安装你一个app吗?你认为你的app是世界上最重要的app吗?你应该将你的应用数据写到这个路径下! 目的是提供一种从相机或图库中捕获用户照片并对其进行裁剪的简单方法。 用法如下: cropped = new File(Environment.get External Storage Directory (),"profile_image.png"); new Photo(this) .asSquare() .withMaxSize(190,190) .output(Uri.fromFile(cropped)) .takePhotoOrChooseFromLibrary(); 然后为了获取你使用的结果 onActivityResult
Android 解决get External Storage Directory 在29后废弃问题,亲测能用 初衷:在安卓10之后相信大家都遇到了get External Storage Directory 废弃的问题,看了网上很多都根据官方用到了get External Files Dir 但是保存图片至相册后的通知又成了一个问题,所以我们还是不要走歪路,直接替代get External Storage Directory 废话不多说,直接上代码: // SDCard地址 / storage /emulated/0
Android get External Storage Directory ()和get External Files Dir ()的 区别 1、app专属文件位置 app专属文件就是只有app才可以使用的文件,这类文件随app的删除而删除,他们可以被 存储 在两个地方:internal storage (内部 存储 )和 external storage (外部 存储 );i internal storage :就是app私有的目录,为:“data/data/<package name>/file/..."访问方法:File
在使用 Android SDK 版本超过29编译的时候, Android Studio会提示Environment.get External Storage Directory ()过时了,要用Context#get External Files Dir 代替, Android Q以后Environment.get External Storage Directory ()返回的路径可能无法直接访问,所以改成了Context#get External Files Dir 所以Environment.get External Storage D
在获取了 存储 权限:WRITE_ EXTERNAL _ STORAGE 和 READ_ EXTERNAL _ STORAGE 之后,读写文件依然提示权限拒绝(Permission denied)。 Android 10之前 内存 存储 :(data/xxxx/)通过get Files Dir ()得到 存储 路径 外部 存储 :(sdcard(mnt)/xxxx),通过get External Storage Directory ()得到路径 Android 10(29)之后
我们在平常项目中,可能会 存储 一些头像,二维码之类的。这篇文章主要也是介绍自己在 存储 中会遇到的问题以及一些改进方案。 1.首先是长按保存:这个可以去参照网络上的,无非是自己先要拼接好一个文件路径。注意:IO流只能帮忙建文件,但是不能帮忙建目录(路径)。 // 先拼接好一个路径:在内存卡/或是手机内存上做好文件夹 String filePath = Environment.get External Storage Directory ()+savePath; File localFile = new File(filePath); if (!localFile.exist
http://blog.csdn.net/yuzhiboyi/article/details/8645730 ##################################################################### * Return the primary external storage dir ec
### 回答1: 获取外部 存储 目录的方法取决于您正在使用的编程语言和开发平台。在 Android 开发中,您可以使用 `Environment.get External Storage Directory ()` 方法来获取外部 存储 目录的路径。 ### 回答2: get External Storage Directory ()是 Android 中的一种方法,用于获取设备外部 存储 空间的根目录路径。在大多数情况下,这是一个固定的目录,用户可以通过文件管理器或其他应用程序访问该目录,以查看或编辑 存储 在该目录中的文件。 通常,外部 存储 空间是指可移动 存储 介质,例如SD卡。但是,某些设备的外部 存储 可以是内置 存储 。因此,使用get External Storage Directory ()方法获取的路径可以是SD卡上的路径,也可以是内部 存储 器的路径。 由于 Android 中的 存储 权限机制,外部 存储 空间需要授权才能访问。这意味着,如果你的应用程序需要读取或写入外部 存储 器中的文件,那么你需要在应用程序中请求授权,否则将会出现访问被拒绝的错误。 总之,get External Storage Directory ()方法提供了便捷的方法来获取设备外部 存储 器的根目录路径,开发者可以使用它来读取和写入外部 存储 器中的文件。同时,为了保证应用程序能正常访问外部 存储 器,开发者需要明确了解 Android 中的 存储 权限机制,正确申请权限,以便进行正常访问。 ### 回答3: get External Storage Directory 是一个 Android 系统中的方法,用于获取设备的外部 存储 路径。在旧版本的 Android 中,get External Storage Directory 返回的是外置SD卡的路径,但是在 Android 4.4及其以上版本中,它返回的是设备的主要共享 存储 区域的路径(也称为外部 存储 )。 get External Storage Directory 返回的路径是一个 File 对象,表示应用程序可以访问的共享外部 存储 区域的根目录。应用程序可以在此目录下创建文件或目录来 存储 用户的数据或其他文件。 由于 Android 的安全机制和权限控制,应用程序只能访问该目录的子目录。同时,设备可能有多个外部 存储 挂载点,但是只有一个被返回。此外,如果设备没有外部 存储 ,该方法将返回 null。 get External Storage Directory 方法从API level 29开始被废弃,Google建议使用更加私有的 存储 方式,如使用Context#get External Files Dir ()获取应用私有 存储 路径等。因为在 Android 10 or API level 29 及更高版本,应用程序没有默认权限访问外部 存储 ,它只能通过许多限制的方式来访问,所以建议使用更加私有的 存储 方式。