我正在使用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文件夹应用程序,但我找不到任何相关信息。任何答复表示赞赏。