React-Native:如何从ios项目文件夹中复制文件?

时间:2019-10-24 06:16:55

标签: ios react-native react-native-fs

我在资产文件夹中有文件,该文件在Xcode的my_project / assets下创建。 通常,我可以使用以下命令访问模板WebView中的文件:

source = {uri:'ICF-Package / ICFPackage / index.html'}

但是我无法使用react-native-fs将此文件复制到LibraryDirectoryPath:

RNFS.copyFile('。ICF-Package / ICFPackage / index.html',RNFS.LibraryaDirectory +'/index.html').then((result)=> console.log('DONE'))。catch ((错误)=> console.log(错误,'错误'));

请帮助我。

1 个答案:

答案 0 :(得分:0)

文件副本位于ios资产文件中。但是您将sourcePath传递给方法是相对于react-native路径的。它表示与需要它的组件相同的文件夹。
一种方法是,将文件移到react-native目录中,然后使用它。它也有一个优势,对于android来说,它也可以工作。
另一种方法是,将用于不同平台的文件放在不同的文件中。对于android,将其放置在资产中,对于ios,将其放置在RNFS.MainBundlePath中。资产目标和main.jsbundle必须位于同一文件夹RNFS中。MainBundlePath是main.jsbundle路径。

//for android
if(Platform.OS == "android"){
RNFS.copyFileAssets("file path under the assets",destPath)
} else {
//for ios
RNFS.copyFile(RNFS.MainBundlePath + "the path under ios assets",destPath)