Android 如何从React Native Camera Roll将图片保存到特定文件夹

Android 如何从React Native Camera Roll将图片保存到特定文件夹,android,ios,react-native,expo,camera-roll,Android,Ios,React Native,Expo,Camera Roll,所以我用世博会的摄像头API来拍照,就像这样: takePicture = async function() { if(this.camera) { this.camera.takePictureAsync().then(data => { CameraRoll.saveToCameraRoll(data.uri); }).then(() => { this.setState({ photoId: this.state.

所以我用世博会的摄像头API来拍照,就像这样:

takePicture = async function() {
  if(this.camera) {
    this.camera.takePictureAsync().then(data => {
        CameraRoll.saveToCameraRoll(data.uri);
    }).then(() => {
      this.setState({
        photoId: this.state.photoId + 1,
      });
    });
  }
};
现在,我想专门检索我用这个应用程序拍摄的照片,以便以后使用。我想一个简单的方法是,如果应用程序将其图片保存到相机卷中的一个单独文件夹中,就像Instagram在其中创建自己的文件夹一样


如何让应用程序在相机卷中创建自己的文件夹,然后将图片保存到其中?

在Android上,您可以使用react native fetch blob及其文件系统访问API(PictureDir常量)

例如,我:

try {
    const data = await this.camera.takePictureAsync()
    await RNFetchBlob.fs.mkdir(`${RNFetchBlob.fs.dirs.PictureDir}/myfolder`)
    await RNFetchBlob.fs.mv(
        data.api, 
        `${RNFetchBlob.fs.dirs.PictureDir}/myfolder/${moment().unix()}.jpg`
    )
} catch () {
    ...
}

你也可以在这里看到答案。因为这里有同样的问题

我知道我来不及回答这个问题

您只需使用下面的npm包即可获得所需的输出

npm i@react原住民社区/摄影师

之后,您必须在try-catch块中使用下面的代码,这样您就可以轻松地将图像存储在所需的路径上

   try{
        CameraRoll.save(data.uri,{type:"photo",album:"../your folder name"}).
                    then((res)=>{console.log("save img...",res);}).
                    catch((err)=>{console.log("err for save img...",err);})
    }
    catch{
      //your code...
    }

我也在使用RNFetchBlob,但takePictureAsync方法不会返回data.api。。我想将从相机拍摄的图像存储在Picture Dir中所需的文件夹中。@ZainNazirButt,请在新的堆栈问题中描述您的问题,我(和社区)将尽力帮助您。@JulienAlige非常感谢。您建议使用react native fetch blob和文件系统访问API,这对我很有帮助。