React-Native-如何创建文件然后立即打开它

时间:2019-07-02 19:26:38

标签: csv react-native react-native-fs

我正在使用react-native-fs创建一个csv文件,并且每次都成功创建该文件。但是,我想在创建后立即在另一个应用程序中打开该csv文件。我正在使用Linking.openURL,它允许我选择要在其中打开csv文件的应用程序,但是无论我选择哪个应用程序,它们都将始终无法读取csv文件。

例如,Microsoft excel会说“无法打开文件,尝试将文件保存在设备上然后再打开”

由于某种原因,当我手动转到下载文件夹(保存文件的位置)并手动打开它时,它工作正常,每个应用程序都会成功打开它。然后,我的应用程序也可以使其他应用程序也成功打开csv文件。但是第二次我生成一个新的csv文件,其他应用程序将无法打开它,直到我再次手动将其打开。

我已经尝试过csv,html和txt文件。在Excel,Google表格和CSV查看器中打开csv文件。将文件保存到其他位置。在让我的应用打开文件之前,请稍等片刻。 (全部失败)

这是我代码的唯一内容。

    var toFolder = RNFS.ExternalStorageDirectoryPath + '/Download/';
    var fileName = 'SomeFile.csv';
    var content = "June 27,June 28,June 29,June 30\n2,3,4,5";

    RNFS.writeFile(toFolder + fileName, content, 'utf8')
    .then((success) => {})
    .catch((err) => {
        Alert.alert("Can't save file")
        return;
    });

    var readFrom = "content://com.sec.android.app.myfiles.FileProvider/device_storage/Download/" + fileName;

    Linking.canOpenURL(readFrom)
    .then((supported) => {
        if (supported) {
            Linking.openURL(readFrom);
        } else {
            Alert.alert("Opening this file is not supported")
        }
    }).catch((err) => {});

其他应用程序应该能够从我的应用程序中打开文件,而无需进入系统文件并手动打开它。有任何想法吗?如果没有,也可以通过我的应用程序打开downloads文件夹应用程序,但我找不到任何相关信息。任何答复表示赞赏。

0 个答案:

没有答案