使用expo FileSystem

时间:2018-10-14 18:29:10

标签: react-native expo

我正在使用downlaodAsync从我的站点下载产品图像,如果我在fileUri中写了一些目录,以后将无法访问该文件。如果我不写目录名,它将起作用。.我不明白为什么...我的代码:

    const Finished = Result.map(async prod => {
      const name = `fotos/fotoProd${prod.ref}-1.jpg`;
      const path = `${FileSystem.documentDirectory}${name}`;
      const image = await FileSystem.getInfoAsync(path);
      if (image.exists) {
        console.log(`img ${prod.ref} exists`);
      } else {
        console.log(`do not exists the pic ${prod.ref}..`);
        const url = `https://example.com/pics/${prod.ref}-1.jpg`;
        await FileSystem.downloadAsync(url, path)
          .then(Response => {(
            console.log(Response.uri);
          })
          .catch(error => { console.log(error); });
      }
  });
  Promise.all(Finished).then(() => { this.props.endSync(); });

如果我进行测试:

teste = async () => {
    const name = 'fotos/fotoProd001EP-1.jpg';
    const path = `${FileSystem.documentDirectory}${name}`;
    const image = await FileSystem.getInfoAsync(path);
    console.log(path);
    if (image.exists) {
        console.log('image exists');
    } else {
        console.log('nope...');
    }
}

我得到“不...”。

console.log(Response.uri)是带有'001EP'的console.log(path)。

但是如果我写的“ const name”不带“ fotos /”,它就可以工作。

现在我只需要取出'fotos /',但是我想了解正在发生的事情,并且能够更好地利用目录来组织我的项目。

0 个答案:

没有答案