4

我正在尝试向我的 RN 应用程序添加功能,允许用户在手机的文件系统中创建一个新目录。

我尝试编写代码,以便该函数在路径 /storage/emulated/0/AppName/NewFolder 中创建一个目录,因为 /storage/emulated/0 与我用来存储用户的其他应用程序使用的路径相同数据(如录音应用)

    makeDirectory = () => {
        const { currentFolder, units } = this.props;

        const directoryName = 'New Folder'
        const currentDirectory = units

        const absolutePath = `/storage/emulated/0/MyApp/${currentDirectory}`

        RNFS.mkdir(absolutePath)
            .then((result) => {
                console.log('result', result)
            })
            .catch((err) => {
                console.warn('err', err)
            })
    }

但是,这只是给我一个错误:无法创建目录。我觉得我在这里遗漏了一些东西,不应该将这样的文件保存到手机系统中。

我的最终目标是让应用程序拥有自己的文件夹系统,该文件夹系统将在 /storage/emulated/0/MyApp/home 中进行镜像

4

4 回答 4

7
 const    AppFolder    =     'DirNameyouwant';
 const DirectoryPath= RNFS.ExternalStorageDirectoryPath +'/'+ AppFolder;
 RNFS.mkdir(DirectoryPath);
于 2020-03-06T13:34:20.867 回答
1

我刚刚尝试过,我的文件夹创建成功。

利用

const absolutePath = `/storage/emulated/0/${currentDirectory}`

反而

const absolutePath = `/storage/emulated/0/MyApp/${currentDirectory}`
于 2019-04-18T10:17:13.773 回答
0

您需要征得用户的许可才能访问他的手机存储空间。

请参阅Lyest对来自 GitHub 的报告问题的评论

于 2020-10-23T18:33:24.537 回答
0

我已经通过在 Android Manifest 文件中添加这一行来解决我的问题

android:requestLegacyExternalStorage="true"

于 2021-11-08T12:17:53.907 回答