首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么getExternalFilesDir要将我的文件保存到内部存储

getExternalFilesDir()方法是Android中用于获取应用程序的外部存储目录的方法。为什么要将文件保存到内部存储呢?原因如下:

  1. 安全性:将文件保存到内部存储可以提高文件的安全性。内部存储只能被当前应用程序访问,其他应用程序无法直接访问和修改这些文件。这对于存储一些敏感信息或私密文件非常重要。
  2. 数据保护:将文件保存到内部存储可以受到Android系统的数据保护机制的保护。当设备处于锁定状态时,内部存储中的文件将被加密,以防止未经授权的访问。
  3. 应用程序管理:将文件保存到内部存储可以方便应用程序进行管理。当用户卸载应用程序时,内部存储中的文件也会被自动删除,不会留下垃圾文件。
  4. 文件访问速度:内部存储通常比外部存储(如SD卡)的访问速度更快。这对于需要频繁读写文件的应用程序来说,可以提供更好的性能。
  5. 兼容性:某些设备可能没有外部存储(如SD卡),或者用户可能没有将SD卡插入设备中。将文件保存到内部存储可以确保应用程序在所有设备上都能正常运行。

推荐的腾讯云相关产品:腾讯云对象存储(COS)。

腾讯云对象存储(COS)是一种高可用、高可靠、安全、低成本的云存储服务。它提供了标准的RESTful接口,可以方便地进行文件的上传、下载、删除等操作。腾讯云对象存储支持多种存储类型,包括标准存储、低频存储和归档存储,可以根据实际需求选择合适的存储类型。腾讯云对象存储还提供了数据加密、访问权限控制、数据迁移等功能,可以满足各种场景下的存储需求。

更多关于腾讯云对象存储的信息,请访问:腾讯云对象存储(COS)

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【专业技术】Android数据保存之文件保存

getExternalFilesDir()获取到目录文件; 如果你文件没有必要控制访问权限,可以允许其它应用或者用户查看,那么外部存储是不错选择; 注:在默认情况下应用程序安装到内部存储,您可以指定...,应用程序对于内部存储默认就有读写文件权限; 保存到内部存储文件存储需要创建文件,当把文件存到内部存储时你可以获取内部存储文件通过下面的两个方法: 1、File getFilesDir ();...保存到外部存储: 保存到外部存储首先要检查外部存储是否存在并有剩余空间,因为外部存储有可能会被拔掉,或者正在连接着电脑,所以当你要在外部存储保存文件第一步就是检查外部存储是否挂在,可以通过调用getExternalStorageState...查询剩余空间: 如果你提前知道你保存文件大小,你就可以通过File.getFreeSpace()或者File.getTotalSpace()方法来估算存储空间是否能够容纳,这样就可以避免在没有足够存储空间时出现...在用户卸载你应用时候Android系统会删除你一下文件: 1、所有保存在内部存储文件; 2、所有保存在getExternalFilesDir()目录外部存储文件; 注意:你需要定期手动清理通过

2.1K60

AndroidQ分区存储权限变更及适配实现

访问私有文件 应用需要将文件存储在应用沙盒中,并且访问这个文件夹无需权限。官方推荐应用在沙盒内存储文件地址为Context.getExternalFilesDir()下文件夹。...比如要获得一张图片 Context.getExternalFilesDir(Environment.DIRECTORY_PICTURES) 访问其他应用创建文件 只有在满足以下两个条件时,您应用才能访问其他应用创建文件...访问此类文件,应用必须使用 MediaStore.openFile() 等方法。...有时我们要在卸载后保留这些文件,请将其保存到 MediaStore 中某个目录下。...修改另一个应用保存到外部存储设备给定媒体文件,请捕获平台抛出 RecoverableSecurityException。然后,您可以请求用户授予您应用对此特定内容写入权限。

1.5K31

Android 10 适配攻略小结

1.Scoped Storage(分区存储) 说明 在Android 10之前版本上,我们在做文件操作时都会申请存储空间读写权限。...但是这些权限完全被滥用,造成问题就是手机存储空间中充斥着大量不明作用文件,并且应用卸载后它也没有删除掉。...为了解决这个问题,Android 10 中引入了 Scoped Storage 概念,通过添加外部存储访问限制来实现更好文件管理。 首先明确一个概念,外部储存和内部储存。...一般我们使用 getFilesDir() 或 getCacheDir() 方法获取本应用内部储存路径,读写该路径下文件不需要申请储存空间读写权限,且卸载应用时会自动删除。...(因为一般都是上传File,没有直接上传Uri操作),所以我将最终选择文件又转存进了 getExternalFilesDir() ,主要代码如下: File imgFile = this.getExternalFilesDir

1.8K32

Android教程-保存数据-保存文件

本课程假定你熟悉Linux文件系统,还有java.io中标准文件输入/输出操作. 选择内部会外部存储 ---- 所有安卓设备都有两个存储区域: "内部" 和 "外部" 存储....当用户卸载你应用时,系统会从内部存储中移除你应用所有文件. 当你想要确保不管是你用户还是其它应用都能访问你文件内部存储是最合适....在内部存储中保存一个文件 ---- 当要在一个内部存储中保存一个文件时,你可以通过调用下面两个方法其中之一,来获取相应目录 文件 : getFilesDir()     返回一个表示你应用内部路径...确保一旦文件不再需要时都删除一次,并且在任何给定时间你使用内存都有一个合理大小限制, 比如 1MB. 如果系统开始低存储消耗运行 , 他可能在没有提示就删除了你缓存文件....); 注意: 当用户卸载你应用时,Android系统会删除下面这些东西 : 所有你保存在外部存储文件 所有你使用 getExternalFilesDir() 保存在内部存储文件.

2.6K30

好好管理你应用文件夹,别再乱用了

安卓碎片化问题,由来已久,这次来看一下文件储存碎片化问题。到底怎么去正确选择和管理文件存储呢? 1 为什么管理文件?...3.1 应用私有文件目录 应用私有目录由Context获取控制,分为内部存储和外部存储内部存储不需要申请文件读写权限也能够使用,外部存储需要权限(getetExternalCacheDir() 和 getExternalFilesDir...用户对app进行数据清理或卸载可以清理外部存储内部存储所有文件目录。 3.2 内部存储 内部存储文件夹其他应用和用户无法直接访问,可以用于存放敏感数据。...和内部存储getCacheDir()相似。 getExternalFilesDir(String type) 归类存放公有文件。...比如一个文件保存地址获取方法里不能只有一个api,保有兜底措施,如果我不能存在外部储存,那我就存在内部,保证app功能正常运行。

1.3K10

Android存储访问及目录

外部存储可以通过物理介质提供(如SD卡),也可以通过将内部存储一部分封装而成,设备可以有多个外部存储实例。...外部存储对数据提供保护较少,所以系统不应该存储敏感数据在外部存储上。   特别地,配置和log文件应该存储内部存储中,这样它们可以被有效地保护。   ...任何应用私有的文件应该被放置在 Context.getExternalFilesDir返回目录下,在应用被卸载时候,系统会清理就是这个目录。   ...从KITKAT 即Android 4.4开始,如果你应用只是需要存储一些内部数据,可以考虑使用 : getExternalFilesDir(String)或者getExternalCacheDir(...Android 4.4之前版本访问的话还是声明读写权限,如果没有在manifest中写权限,上面两个get方法都会返回null。

1.8K10

Android文件存储路径

注意点 使用内部存储应用卸载后,存储文件自动删除 使用外部存储申请权限,并且判断外部存储是否可用 实例 public static String getFilePath(Context context...())) { directoryPath = context.getExternalFilesDir(dir).getAbsolutePath(); } else {//没外部存储就使用内部存储...File cacheDir = context.getCacheDir(); 特点 应用内部存储空间 数据文件私有 不需要申请权限 当应用被卸载时候,目录下文件会被删除 存储文件 需要注意是,...这个文件目录和应用存储位置有关, 当应用被移动到外部存储设备时候,文件绝对路径也是变化,所以建议当数据存储到这个目录时候,用相对路径。...= context.getFilesDir(); 特点 应用内部存储空间 数据文件私有 不需要申请权限 当应用被卸载时候,目录下文件会被删除 当应用被移动到外部存储设备时候,文件绝对路径也是变化

3.3K20

你真的知道APP缓存目录内幕吗

一、各自存储特点 1.内部存储 总是可用 这里文件默认是只能被你app所访问 当用户卸载你app时候,系统会把internal里面的相关文件都清除干净 Internal是在你想确保不被用户与其他...2.外部存储 并不总是可用,因为用户可以选择把这部分作为USB存储模式,这样就不可以访问了。 是大家都可以访问,因此保存到这里文件是失去访问控制权限。...当用户卸载你app时,系统仅仅会删除external根目录(getExternalFilesDir())下相关文件。...getFileDir() 通过此方法可以获取到你APP内部存储文件,路径为/data/data/pacgage_name/files getCacheDir() 通过此方法可以获取到你APP内部存储文件...getDir() 在您内部存储空间内创建(或打开现有的)目录。 deleteFile() 删除保存在内部存储文件。 fileList() 返回您应用当前保存一系列文件

1.7K40

Android 获取系统各个目录方法

这篇文章主要介绍和记录一下实际开发过程中常用各个文件目录。 (1)内部存储(Internal Storage) 内部存储是App私有目录,当一个应用卸载之后,内部存储这些文件也被删除。...Shared Preferences和SQLite数据库文件都是存储内部存储空间上。...外部存储文件是可以被用户或者其他应用程序修改,外部存储目录实际上也分为两种: -公共文件(目录) 文件是可以被自由访问,且文件数据对其他应用或者用户来说都是由 意义,当应用被卸载之后,其卸载前创建文件仍然保留...().getAbsolutePath()); -私有文件 由于是外部存储原因即使是这种类型文件也能被其他程序访问,只不过一个应用私有的文件对其他应用其实是没有访问价值(恶意程序除外)。...外部存储上,应用私有文件价值在于卸载之后,这些文件也会被删除。类似于内部存储

6K10

详解Android10分区存储机制(Scoped Storage)适配教程

简介 大家应该都有过这样体会,手机用着用着里面就充斥着各种不懂文件夹和文件。甚至是连已经删除软件文件夹还存在。 为什么会发生这样问题呢?...以 Android 10(API 级别 29)及更高版本为目标平台应用在默认情况下被赋予了对外部存储设备分区访问权限(即分区存储), 对外部存储文件访问方式重新设计,便于用户更好管理外部存储文件。...此应用无需请求与存储相关用户权限,即可以查看外部存储中以下类型文件: 应用外部特定目录中文件(使用getExternalFilesDir()访问)。...MediaStore Api 否 外部存储 Downloads 无需权限 无需权限 通过存储访问框架SAF,加载系统文件选择器 否 外部存储 应用特定目录 无需权限 无法直接访问 getExternalFilesDir...在应用中想要获取当前应用专有存储目录路径是可以用Context.getExternalFilesDir()方式获取。

3.1K32

Android文件存储使用

Android文件存储参考 思维导图 可能遇到问题 android系统自身自带有存储,另外也可以通过sd卡来扩充存储空间。前者好比pc中硬盘,后者好移动硬盘。...各个路径特性 下面介绍这些路径特性以及使用中需要注意细节: 根目录( $rootDir ): 内部存储路径: /data , 通过 Environment.getDataDirectory...文件目录 $filesDir = $appDataDir/files : * 内部存储:通过 Context.getFilesDir() 获取 > Context.getFileStreamPath...$cacheDir / $filesDir 安全性 * 在内部存储中, $cacheDir , $filesDir 是app安全,其他应用无法读取本应用数据,而外部存储则不是。...* 在外部存储中,这两个文件夹其他应用程序也可访问。 * 在外部存储中, $filesDir 中媒体文件,不会被当做媒体扫描出来,加到媒体库中。 4.

2.3K30

适配AndroidQ拍照和读取相册图片实现方法

先讲一下咱们这节用到新特性 Android Q文件存储机制修改成了沙盒模式,类似于iOS 应用只能访问自己沙盒下文件和公共媒体文件 如果有想具体了解Android Q新版特效可以去 官方文档 我们在这个地方记录一下...Android Q版本进行拍照保存到相册功能。...拍照 图片正常保存 拍照:Android Q之前版本使用,将图片保存到指定文件夹,拍照完成后需要通知相册刷新 拍照代码 // 拍照存放路径 File fileDir = new File(...,有需要可以直接复制就行 将图片保存到沙盒内 沙盒里面操作文件不再需要申请权限 沙盒中新建文件夹只能再系统指定文件夹中新建 Android Q版本使用,将图片存放到沙盒文件内,图库无法刷新,无法显示...存到公共文件操作,相对来说麻烦点,但是也还好。

2.6K11

Android内部存储和外部存储怎么区分?

1.定义   内部存储内部存储位于Android手机系统data/data/这个目录下,内部存储是私有的,主要用于存储系统和应用程序某些数据,对于其他应用程序来说是不可见,并且会随着应用程序卸载而被删除...外部私有存储位于/storage/emulated/0/Android/data/包名这个目录下,它和内部存储一样是私有的,并且其他应用程序是无法访问,会随着应用程序卸载而被清除。        ...内部存储: context.getFilesDir() context.getCacheDir()   //   data/data//cache   外部私有存储: context.getExternalFilesDir...Environment.getExternalStorageDirectory() Environment.getExternalStoragePublicDirectory(String type)   参数type用于指定文件类型...,可以有以下取值:(getExternalFilesDir和Environment.getExternalStoragePublicDirectory这两个函数参数type取值是一样) Environment.DIRECTORY_MUSIC

32910

Android文件系统整理

总揽 Android文件系统从大方面分为以下几类: 1、内部存储 2、外部存储 3、SharedPreferences 4、数据库 PS:SharedPreferences和数据库我们在另外篇幅中详细介绍...不同存储类别扮演了不同角色,比如 App 私有存储空间是无法被外部访问,可以用来存储一些 App 私有的敏感信息;共享存储空间可以存储一些所有应用都可以访问文件,例如媒体、文档等可公开文件...内部存储空间 内部存储空间是 App 私有的存储数据存储空间,系统会阻止其他应用对这部分数据访问,并且在 Android 10(API 级别 29)及更高版本中,系统会对这些位置进行加密。...内部存储空间特性让它很适合存储只有 App 本身才能访问敏感数据。...传统上这是一张 SD 卡,但它也可以作为设备中内置存储实现,与受保护内部存储不同,并且可以作为文件系统安装在计算机上。

76230

Android | 图解外部存储内部存储

题图:Photo by Ma Fei at Shanghai 阅读本文大约需要2分钟 存储概述 Android中根据数据是否为应用私有、是否需要给外部应用暴露以及数据大小可以有以下几种选择: Shared...Preferences 内部存储 外部存储 本地数据库存储 通过网络在服务器端数据库存储 今天我们重点解释下内外部存储到底是什么有哪些区别,请看下图: 内外部存储区别 按照内外部存储:带External...字眼则一定是外部存储方法,如 getExternalFilesDir() ,外部存储需要运行时权限; 按照公有私有性质:公有文件是Environment调用函数,而私有文件(包括内部私有与外部私有)是...Context调用函数,公有文件不会随着app卸载而删除而私有则会,私有文件不会被Media Scanner扫描到。

65920

获取Android应用专属缓存存储目录实例

如果你想摆脱缓存目录使用尴尬:找不到目录?忘记申请读写权限?害怕污染用户存储空间?...……请往下看 SD卡缓存目录 当应用需要将图片或者文件存到SD卡中时要去申请创建目录,有下面几种途径 我们可以通过API调用应用专属目录: // /storage/emulated/0/Android...时,对通过上面4个API调用得到目录进行文件读写操作不需要申请SD卡读写权限,所以6.0及以上系统使用时也不需要动态申请读写权限 使用注意事项 当存储比较大文件时,如图片等文件存储在SD卡对应目录下.../emulated/0/Android/data/app_package_name/cache * 否则返回对应类型文件夹如Environment.DIRECTORY_PICTURES 对应文件夹为...; } return appCacheDir; } 以上这篇获取Android应用专属缓存存储目录实例就是小编分享给大家全部内容了,希望能给大家一个参考。

2.4K30

Android-文件存储目录

android持久化方式 Android手机存储分为:内部存储和外部储存,在Android4.4以前,手机机身存储就叫内部存储,插入SD卡就是外部存储,但是在Android4.4以后这两个存储定义又有了一些些变化...1.内部存储(Internal Storage) 内部存储位于系统中很特殊一个位置,对于设备中每一个安装 App,系统都会在 data/data/packagename/xxx 自动创建与之对应文件夹...如果你想将文件存储内部存储中,那么文件默认只能被你应用访问到,且一个应用所创建所有文件都在和应用包名相同目录下。也就是说应用创建于内部存储文件,与这个应用是关联起来。...当一个应用卸载之后,内部存储这些文件也被删除。对于这个内部目录,用户是无法访问,除非获取root权限。...getExternalFilesDir(String type),type类型你可以根据自己存储文件类型来定义,会响应创建出该文件夹。

3.4K20

干货 | 携程Android 10适配踩坑指南

1.2 为什么升级AndroidX 版本 28.0.0 是Android Support 库最后一个版本。官方将不再发布 android.support 库版本。...: 应用私有目录:存储应用私有数据,外部存储应用私有目录对应Android/data/packagename,内部存储应用私有目录对应data/data/packagename; 共享目录:存储其他应用可访问文件...Android版本差异概览 存储位置路径版本存储权限 内部存储data/data/packagename所有 否getFilesDir()、getCacheDir() 外部存储 私有目录...1)获取(创建)私有目录下文件夹 //在自身目录下创建apk文件夹 File apkFile = context.getExternalFilesDir("apk"); 2)创建私有目录文件 生成需要下载路径...主要是在公共目录下创建文件文件夹拿到本地路径uri,不同Uri,可以保存到不同公共目录中。

3.2K77
领券