Итак, я создаю простое приложение для камеры, использующее реагирующее.Для компонента камеры я использую пакет react-native-camera
.Пока что я могу сделать снимок и сохранить его в папке DCIM с помощью CameraRoll Api CameraRoll.saveToCameraRoll
, встроенного в нее, но я хочу сохранить его в другой папке, например DCIM/CameraApp
или в папке Pictures
.Для этого я использую пакет RNFetchBlob
.Я пробовал несколько способов создать новый файл из URI, который возвращается this.camera.takePictureAsync
, но выдает ошибку, что файл не существует.Но если я передаю этот URI в CameraRoll.saveToCameraRoll
, он сохраняет его в папке DCIM.
Мой текущий код:
const options = { quality: 0.5 };
const data = await this.camera.takePictureAsync(options)
const { uri, height, width } = data;
this.setState({ uri, height, width });
CameraRoll.saveToCameraRoll(data.uri, 'photo') // it saves it into DCIM
.then( uri => {
// tried this too
//RNFetchBlob.fs.createFile(`${RNFetchBlob.fs.dirs.DCIMDir}/newfile.png`, uri, 'uri'); // throws error that file does not exist
RNFetchBlob.fs.cp(`${RNFetchBlob.fs.dirs.DCIMDir}`, `${RNFetchBlob.fs.dirs.DCIMDir}/CameraApp/p.png`);
console.warn('uri:', uri)
})
.catch( err => console.warn('err:', err));
console.warn(data);
Я пробовал несколько странных способов просто сохранить файл там, где я хочу, нонапрасно.Я надеюсь, что прояснил свои намерения, но, пожалуйста, дайте мне знать, если вам нужно больше информации.Любые предложения приветствуются.