【问题标题】:react-native filesystem can't find app filesreact-native 文件系统找不到应用程序文件
【发布时间】:2018-08-15 17:32:27
【问题描述】:

我正在使用 react-native 构建一个应用程序,并且我正在尝试使用 react-native-fs 模块列出位于应用程序文件夹中的一系列图像。这些图像位于应用程序项目文件夹中名为“数据”的文件夹中,例如,如果我想显示其中一张图像,则可以:

<Image source={require('./data/boo.png')} />

但是,当我尝试使用 react-native-fs 列出该文件夹中的所有文件时,如下所示:

  RNFS.readdir(RNFS.DocumentDirectoryPath+'/data') 
  .then((result) => {
    console.log('GOT RESULT', result);
  })
  .catch((err) => {
    console.log(err.message, err.code);
  });

我收到错误“文件夹不存在”。此外,当我删除 +'/data' 时,列出的唯一结果是名为“ReactNativeDevBundle.js”的文件,路径为“/data/user/0/com.awesomeproject/files/ReactNativeDevBundle.js”。这是预期的行为吗?如果这是预期的行为,并且我做错了什么,我如何从应用程序中访问我想要的文件夹?附带问题,如果我想为该 Image 标签提供绝对路径,那会是什么样子。

【问题讨论】:

    标签: react-native react-native-android react-native-fs


    【解决方案1】:

    首先,您是在运行时创建数据文件夹吗?或者你为什么认为那是文件所在的位置?

    第二,

    此外,当我删除 +'/data' 时,列出的唯一结果是一个文件 'ReactNativeDevBundle.js' 的名称,路径为 '/data/user/0/com.awesomeproject/files/ReactNativeDevBundle.js'。是 这是预期的行为?

    是的,这是预期的行为,RNFS.DocumentDirectoryPath 直接转到 /data/user/0/com.awesomeproject/files/,如果您想继续使用与您相同的代码,您应该在此处创建数据文件夹目前有

    编辑: 根据该软件包的一位贡献者的说法:if your folder is within the javascript-space this package won't work

    If you're using android, you may need to put the files into the assets-folder within the android-folder. 那你应该可以使用readDirAssets了。

    我推荐阅读Differences between File Source

    摘录:

    普通文件:这些文件是您的应用使用 fs 或 fetch API 创建的,您可以对这些文件进行任何操作。

    资产文件:编译到应用程序包中,因此它们通常在 只读模式

    【讨论】:

    • 1) 在我的桌面项目文件夹中,当我添加一个文件夹时,假设是“数据”,并向其中添加内容,我可以使用带有链接“./data/”的图像标签访问它boo.png',这让我相信在我的设备上的某个地方,如果图像标签正在访问它,则必须存在类似的文件结构。 2)我没有在运行时创建文件夹,但我注意到我可以创建文件/文件夹并使用 RNFS 访问它们。
    • 有没有办法 RNFS 可以访问通过将它们添加到项目文件夹中创建的文件夹,就像 Image 标签一样?我正在尝试在构建时动态查找和显示与应用程序捆绑在一起的任何图像,并且我不想像我必须使用图像标签那样单独链接它们。
    • 您在哪里创建数据文件夹?你能告诉我路径吗?
    • 我在我的 PC 上的项目文件夹中添加一个文件夹:C:\Users\user\Dropbox\folder\folder\05_Software\app project folder\images 然后当我用 标签看起来像:source={require('./images/ef20b264-82f2-40c1-9cc2-28b59778d2ea.png')}
    • 非常感谢您的帮助!有机会我会读一读。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-10
    相关资源
    最近更新 更多