React Native - 如何将捕获的图像存储在其他文件夹而不是图片文件夹中

React Native - How to store captured images other folder instead of Pictures folder

我创建了一个简单的应用程序来捕获图像并上传到 AWSs3。我想将这些图像存储在我的应用程序文件夹中。 (我在安装应用程序后创建了它)。我想将捕获的图像存储到该文件夹​​而不是图片文件夹。我正在使用 react-native-image-picker 来捕获图像。

我的代码是,

import ImagePicker from 'react-native-image-picker';
import RNFS from 'react-native-fs';
takePic = () => {

    const options = {
      quality: 1.0,
      maxWidth: 100,
      maxHeight: 100,
      base64: true,
      skipProcessing: true
  }
  const pictureFolder = RNFetchBlob.fs.dirs.SDCardDir+'/Pictures/Text/';
    ImagePicker.launchCamera(options,(responce)=>{

        this.state.testImage.push({ uri: responce.uri });
          const file ={
            uri   : responce.uri,
            name :DeviceInfo.getUniqueID()+'_'+this.props.longitude+'_'+this.props.latitude+'_'+this.state.capturedTime+'_'+this.state.schoolId+'_'+this.state.userId+'_'+this.state.SelectedClass+'_'+this.state.SelectedSection+'_'+this.state.SelectedSubject+'.jpg',
            method: 'POST',
            //path : pictureFolder+responce.fileName,
            path : responce.path,
            type :  responce.type,
            notification: {
                enabled: true
              }
          }

          console.log(pictureFolder);
      });

(我只更新了部分代码)。我尝试使用 react-native-fs 在外部提及目标目录。但是我没有。

有人可以帮我做吗?

假设文件夹已经存在 gallery 文件夹

  • 试试这个:

    const APP_FOLDER_NAME = 'MyApp';
      const pictureFolder = `${RNFS.PicturesDirectoryPath}/${APP_FOLDER_NAME}`;
      ImagePicker.launchCamera(options, (response) => {
        const { uri } = response;
        const fileName = new Date().getTime();
        RNFS.copyFile(uri, `${pictureFolder}/${fileName}`)
        .then(() => RNFS.scanFile(`${albumPath}/${fileName}`));
      });
    

这一步非常重要,可以在不重启模拟器或设备的情况下查看文件夹中的文件:

.then(() => RNFS.scanFile(`${albumPath}/${fileName}`));