Как получить доступ к папке устройства с помощью собственной файловой системы React - PullRequest
0 голосов
/ 11 июля 2020

Мне нужно было получить файлы из пользовательской папки, которую я создал с помощью моего приложения rncamera roll, я использовал response-native-fs для доступа к папке, но не смог получить файлы, хотя я правильно указал имя папки, но я получить возможное отклонение необработанного обещания (id: 7): Ошибка: папка не существует. Как я могу получить доступ к этой папке?

Даже когда я удалил имя папки RNFS.readDir (RNFS.ExternalStorageDirectoryPath), чтобы проверить результат console.log, я получил ошибку «isFile не является функцией».

Что не так с этим кодом и как их исправить.

UNSAFE_componentWillMount() {
        RNFS.readDir(RNFS.ExternalStorageDirectoryPath+"myApp Videos")
        .then((result) => {
        console.log('GOT RESULT', result);
        return Promise.all([RNFS.stat(result[0].path), result[0].path]);
        })
        .then((statResult) => {
        let videos = []
        var allowedExtensions = /(\.avi|\.mp4|\.mov|\.wmv|\.avi)$/i;
        statResult.forEach(item => {
        if (item.isFile() && !allowedExtensions.exec(item.originalFilepath)) {
        videos.push(item)
        }
        });
        console.log(videos)
        })
    }

    setIndex = (index) => {
        if (index === this.state.index) {
            index = null
        }
        this.setState({ index })
    }
   

render() {
    return (
        <View style={styles.container}>
            <ScrollView
                contentContainerStyle = {styles.scrollview}
                {
                    ...this.state.videos && this.state.videos.length > 0 && this.state.videos.map((p, i) => {
                        const isSelected = i === this.state.index;
                        const divide = isSelected && this.share === true ? 1 : 3;
                        return(
                            <Video
                                source={{uri: videos}}
                                style={{opacity: i === this.state.index ? 0.5 : 1, width: width/divide, height: width/divide}}
                                key={i}
                                underlayColor='transparent'
                                onPress={() => this.setIndex(i)}
                                ref={ref => {
                                    this.player = ref;
                                  }} // Store reference
                                  onError={this.videoError} // Callback when video cannot be loaded
                            />

                            
                        )
                    })
                }
            >

            </ScrollView>
        </View>
    );
}
...