安装react-native-fs

npm

npm install react-native-fs --save

yarn

yarn add react-native-fs

安卓配置

  • android/settings.gradle
...
include ':react-native-fs'
project(':react-native-fs').projectDir = new File(settingsDir, '../node_modules/react-native-fs/android')
  • android/app/build.gradle
...
dependencies {
...
implementation project(':react-native-fs')
}
  • android\app\src\main\java\com\reactnative_demo\MainApplication.kt

把原代码

import com.rnfs.RNFSPackage; // 导入模块

// 下面这段代码要改
override fun getPackages(): List<ReactPackage> {
// Packages that cannot be autolinked yet can be added manually here, for example:
// packages.add(new MyReactNativePackage());
return PackageList(this).packages
}

改为

import com.rnfs.RNFSPackage; // 导入模块

// 改成这样
override fun getPackages(): List<ReactPackage> =
PackageList(this).packages.apply {
// Packages that cannot be autolinked yet can be added manually here, for example:
// packages.add(new MyReactNativePackage());
add(RNFSPackage()) // 如果报错提示覆盖注册(已经自动注册了),那么把这行注释掉即可
}

使用

import {StyleSheet, Text, View, Button} from 'react-native';
import React from 'react';
import RNFS from 'react-native-fs'; export default function CsvFile() {
const handleClick = () => {
const path = RNFS.ExternalStorageDirectoryPath + '/test.txt';
RNFS.writeFile(path, 'Lorem ipsum dolor sit amet', 'utf8')
.then(success => {
console.log('FILE WRITTEN! --> ', path);
})
.catch(err => {
console.log(err.message);
});
};
return (
<View>
<Button title="写入文件" onPress={() => handleClick()} />
</View>
);
} const styles = StyleSheet.create({});

关于存储路径

RNFS.MainBundlePath (String) 主包目录的绝对路径(在 Android 上不可用)
RNFS.CachesDirectoryPath (String) 缓存目录的绝对路径
RNFS.ExternalCachesDirectoryPath (String) 外部缓存目录的绝对路径(仅限安卓)
RNFS.DocumentDirectoryPath (String) 文档目录的绝对路径
RNFS.DownloadDirectoryPath (String) 下载目录的绝对路径(仅在 android 上)
RNFS.TemporaryDirectoryPath (String) 临时目录的绝对路径(在 Android 上回退到 Caching-Directory)
RNFS.LibraryDirectoryPath (String) NSLibraryDirectory 的绝对路径(仅限 iOS)
RNFS.ExternalDirectoryPath (String) 外部文件的绝对路径,共享目录(仅限安卓)
RNFS.ExternalStorageDirectoryPath (String) 外部存储的绝对路径,共享目录(仅限安卓)

react native 0.73 配置 react-native-fs的更多相关文章

  1. Mac电脑配置IOS React Native开发环境配置笔记

    React Native(以下简称RN)的开发环境配置直接参考官方文档即可完成,不过对小白来说东西有点多,有些名词不是很好理解,这里就官方的安装文档稍微展开说一下. 中文版配置说明:不错的中文说明.官 ...

  2. react-native —— 在Mac上配置React Native Android开发环境排坑总结

    配置React Native Android开发环境总结 1.卸载Android Studio,在终端(terminal)执行以下命令: rm -Rf /Applications/Android\ S ...

  3. React Native 0.50版本新功能简介

    React Native在2017年经历了众多版本的迭代,从接触的0.29版本开始,到前不久发布的0.52版本,React Native作为目前最受欢迎的移动跨平台方案.虽然,目前存在着很多的功能和性 ...

  4. 《React Native 精解与实战》书籍连载「Node.js 简介与 React Native 开发环境配置」

    此文是我的出版书籍<React Native 精解与实战>连载分享,此书由机械工业出版社出版,书中详解了 React Native 框架底层原理.React Native 组件布局.组件与 ...

  5. Mac配置React Native开发环境

    一直觉得学习一样东西,不动手怎么也学不会,就像学习swift,看了视频没有动手操作,记住的也就那么点,自己写出东西不是这里有问题就是那里出错. 所以,以后学习自己要多动手. 现在我的学习任务就是: 提 ...

  6. Android 工程集成React Native 0.44 注意点

    当前(2017年5月22日 )React Native开发相当火爆,但是搜索下来,没有最新版本0.44集成的教程,因此尝试了一下如何集成到Android原生工程中去.本篇旨在记录出现的问题以及应对方式 ...

  7. React Native - 0序言

    1. 什么是React Native? React Native是Facebook在React.js Conf 2015大会上推出的一个用于开发Android t iOS App的一个框架.主要编程语 ...

  8. 利用 Create React Native App 快速创建 React Native 应用

    本文介绍的 Create-React-Native-App 是非常 Awesome 的工具,而其背后的 Expo 整个平台也让笔者感觉非常的不错.笔者目前公司是采用 APICloud 进行移动应用开发 ...

  9. 2、手把手教React Native实战之从React到RN

    ###React简介 RN是基于React设计,了解React有助于我们开发RN应用: React希望将功能分解化,让开发变得像搭积木一样,快速而且可维护 React主要有如下3个特点: *作为UI( ...

  10. Native VS H5 VS React Native

    现在软件行业已经跨入大前端时代,所以势必学一点前端的知识.本来移动端开发都是使用各自平台的语言,如iOS端使用OC,swift:Android使用java,但是随着H5的出现,导致移动端Native出 ...

随机推荐

  1. Android Handler实现子线程与子线程、主线程之间通信

    一.子线程向主线程传值: 首选在主线程里创建一个Handler 1 Handler mHandler = new Handler(){ 2 @Override 3 public void handle ...

  2. Java -----多线程 创建线程的方式三: 实现Callable接口----JDK 5.0 新增

    1 package bytezero.thread2; 2 3 import java.util.concurrent.Callable; 4 import java.util.concurrent. ...

  3. mysql中innodb创建表的一些限制

    1. 背景 在新创建mysql数据表的时候.不太确定表能创建多少个字段,多少个索引.索引多少有限制么?mysql的数据是怎么存储的存在在哪里. 2.基本个数限制 在MySQL5.6.9以后的版本,一个 ...

  4. 不可不知道的python装饰器

    前记   python小白,估计很多没用过这个高级功能吧,当你用了它之后就会发现,真是非常好用喔.   装饰器本质上是一个 Python 函数或类,它可以让其他函数或类在不需要做任何代码修改的前提下增 ...

  5. AES算法:加密通信的新选择

    AES算法起源: AES(Advanced Encryption Standard)算法是一种对称密钥加密算法,由比利时密码学家Joan Daemen和Vincent Rijmen设计,于2001年被 ...

  6. 08.Android之View事件问题

    目录介绍 8.0.0.1 简述Android的事件分发机制?dispatchTouchEvent方法的作用是什么?说下View和ViewGroup分发事件? 8.0.0.2 onInterceptTo ...

  7. 在 NVIDIA DGX Cloud 上使用 H100 GPU 轻松训练模型

    在 NVIDIA DGX Cloud上使用 H100 GPU 轻松训练模型 今天,我们正式宣布推出 DGX 云端训练 (Train on DGX Cloud) 服务,这是 Hugging Face H ...

  8. 记录--六道题理解Vue2 和 Vue3 的响应式原理比对

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 前言 技术栈是 Vue 的同学,在面试中难免会被问到 Vue2 和 Vue3 的相关知识点的实现原理和比较,面试官是步步紧逼,一环扣一环. ...

  9. vue三种插槽

    1. 作用:让父组件可以向子组件指定位置插入html结构,也是一种组件间通信的方式,适用于 父组件 ===> 子组件 . 2. 分类:默认插槽.具名插槽.作用域插槽 3. 使用方式: a.默认插 ...

  10. 基于proteus的4026的二分频计数

    基于proteus的4026的二分频计数 1.芯片原理 4026还是一个CMOS芯片,是直接输出段码的计数器.显然,这个芯片的作用就是和七段数码管配合,直接将计数结果显示在数码管上.这里只是用于分频, ...