将文件保存在 Documents/Downloads 中

发布于 2025-01-09 06:38:59 字数 438 浏览 1 评论 0原文

是否可以在文档或下载中使用react-native保存文件? 我正在尝试使用react-native-fs保存pdf文件:

let file = await RNHTMLtoPDF.convert(options)
const destinationPath = RNFS.DocumentDirectoryPath + "/" + fileName + ".pdf"
RNFS.copyFile(file.filePath, destinationPath)

但它保存在根目录中(/data/user/0/com.prodhealth.mobile.Dev/files/TestTest_2022-02-22_2022- 02-22.pdf),普通用户无法访问。

有没有办法直接将其保存在手机内部存储的文档/下载中?我需要该用户可以轻松访问该文件。

Is it possible to save files with react-native inside Documents or Downloads?
I am trying to save a pdf file with react-native-fs:

let file = await RNHTMLtoPDF.convert(options)
const destinationPath = RNFS.DocumentDirectoryPath + "/" + fileName + ".pdf"
RNFS.copyFile(file.filePath, destinationPath)

but it is saved in the root directory (/data/user/0/com.prodhealth.mobile.Dev/files/TestTest_2022-02-22_2022-02-22.pdf) which is not accessible for normal users.

Is there a way to save it directly in Documents/Downloads of internal storage of the phone? I need that user can easily access this file.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

忆伤 2025-01-16 06:38:59

你可以使用 react-native -fetch-blob

  • cp(src:string, dest:string):Promise

dirs 该常量是包含常用文件夹的哈希映射:

  • DocumentDir
  • MainBundleDir(仅可用于访问嵌入在 iOS 应用程序中的文件)
  • DownloadDir(仅限 Android)

示例

RNFetchBlob.fs.cp(SRC_PATH, DEST_PATH)
.then(() => { ... })
.catch(() => { ... })

you can use react-native-fetch-blob

  • cp(src:string, dest:string):Promise

dirs This constant is a hash map containing commonly used folders:

  • DocumentDir
  • MainBundleDir (Can be used to access files embedded on iOS apps only)
  • DownloadDir (Android Only)

Example

RNFetchBlob.fs.cp(SRC_PATH, DEST_PATH)
.then(() => { ... })
.catch(() => { ... })
○愚か者の日 2025-01-16 06:38:59

是的,你可以。它对我有用。

        let file = await RNHTMLtoPDF.convert(options);
        const destinationPath = RNFS.DownloadDirectoryPath;
        const FileName = 'filename.pdf';

        const destinationFile = destinationPath + "/" + FileName;
        
        RNFS.copyFile(file.filePath, destinationFile)
            .then(result => {
                
                // Delete a file on the project path using RNFS.unlink
                return RNFS.unlink(file.filePath)
                    .then(() => {
                        console.log('FILE DELETED');
                    })
                    // `unlink` will throw an error, if the item to unlink does not exist
                    .catch((err) => {
                        console.log(err.message);
                    });
            })
            .catch(err => {
                console.log('err', err);
            }); 

Yes, You can. It's working for me.

        let file = await RNHTMLtoPDF.convert(options);
        const destinationPath = RNFS.DownloadDirectoryPath;
        const FileName = 'filename.pdf';

        const destinationFile = destinationPath + "/" + FileName;
        
        RNFS.copyFile(file.filePath, destinationFile)
            .then(result => {
                
                // Delete a file on the project path using RNFS.unlink
                return RNFS.unlink(file.filePath)
                    .then(() => {
                        console.log('FILE DELETED');
                    })
                    // `unlink` will throw an error, if the item to unlink does not exist
                    .catch((err) => {
                        console.log(err.message);
                    });
            })
            .catch(err => {
                console.log('err', err);
            }); 
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文