一,首先我们要了解到安卓系统或者ios的存储概念如下图
安卓文件夹目录
https://www.jianshu.com/p/c9a8b8a03fd3【参考网站】
记录一下开发中遇到的一些目录。
在开发中会有内部存储器(Internal Storage)和外部存储器(External Storage)。
Internal Storage
内部存储,路径:data/data/packageName/(此部分的根目录)。这个目录下的文件为应用私有的,其他的应用是无法访问的。同时此目录下的文件是会随应用的卸载而被删除。读写此目录下的文件是不需要权限的。
-getDir(String name, int mode)
返回对应目录下的File文件夹对象。
-getFilesDir()
返回根目录/files文件夹,Context.openFileInput()
和Context.openFileOutput
都是这个文件夹。
-fileList()
返回的是files下的所有文件名
-deleteFile(String name)
删除files下指定名称的文件。
-getCacheDir()
该方法返回的是根目录/cache的File对象.当Android的内部存储容量过低时,android会自动清除缓存文件
External Storage
外部储存,在此存储数据是不安全的。在这部分存储,个人可以分为两个部分来总结。
1.本应用相关目录
此部分路径为/storage/emulated/0/Android/data/packageName/。此目录下的文件会随软件的卸载而被删除。在4.4之后读写此目录下的文件不需要权限。但是这个目录下的文件可以被用户以及带有WRITE_EXTERNAL_STORAGE
或WRITE_EXTERNAL_STORAGE
权限的应用读取或修改。
-getExternalFilesDir(String type)
返回/storage/emulated/0/Android/data/packageName/files/type文件夹,若type为null
则返回/storage/emulated/0/Android/data/packageName/files文件夹。
-getExternalCacheDir()
返回/storage/emulated/0/Android/data/packageName/cache文件夹
2.外部自定义目录
除1以外的目录。读写这部分文件需要WRITE_EXTERNAL_STORAGE
或WRITE_EXTERNAL_STORAGE
权限,6.0以上需要运行时权限。这部分文件是不会随应用被卸载而删除。
-Environment.getExternalStorageDirectory()
返回/storage/emulated/0文件。
作者:马德率的伊比
链接:https://www.jianshu.com/p/c9a8b8a03fd3
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
参考网站:https://www.jianshu.com/p/9528329d4787
https://blog.csdn.net/csdn_aiyang/article/details/80665185
在安卓6.0版本以上,我们手机存储分为内置存储和外置存储,内置存储也分为内部存储可扩展外部存储,所以正在意义上的外部存储是不光只是sdk卡也包含了机身内部扩展的存储
而在这个版本以前外部存储就是指sdk内容
第二个需要了解的内容
在我们程序当中有些权限是需要申请的
具体流程如下
1步。配置文件先配置
2步,rn有对应的方法可以检查权限和权限请求
了解上面流程后,下面流程功能开始了,我们需要把外部sd文件内存复制到内部存储文件【不管是Excel文件还是TXT文件】,先获取当前文件路径,再目标文件创建自己命名的文件夹把文件拷贝过来
每个代码都会有注释
利用到的插件https://github.com/itinance/react-native-fs
https://blog.csdn.net/ahou2468/article/details/100021917?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param#5.2%E6%96%87%E4%BB%B6%E5%88%9B%E5%BB%BA
那如何对文件夹的数据进行增删改查操作数据呢,比如我把数据都存在excel文件里面。而且可以对这些数据可以操作【要利用到xlsx插件可以对他进行操作,这个插件详情请看官网】
https://github.com/SheetJS/sheetjs/tree/master/demos/react
这个插件的用法请看https://www.jianshu.com/p/31534691ed53
https://www.jianshu.com/p/a1973e58a4b6
以及如何下载转化bolb流https://www.jianshu.com/p/61c3fb687ae8
这个插件具有的相关函数功能很强大。可以结合xlsx-style插件保留表格样式