使用Cordova FileTransfer将文件下载到设备的Downloads文件夹

Sho*_*eki 6 android cordova

我正在使用Cordova FileTransfer对象将文件从url下载到设备.

var fileTransfer = new FileTransfer();
var path = cordova.file.dataDirectory;
 fileTransfer.download(
        fileUrl,
        path + "/sample.pdf",
        function(theFile) {
            console.log("download complete: " + theFile.toURI());
            alert("File downloaded to "+cordova.file.dataDirectory);
        },
        function(error) {              
            console.log(JSON.stringify(error));
        }
    );
Run Code Online (Sandbox Code Playgroud)

在这种情况下,文件被下载到data/data/com.fileDemo/files/ (我不确定下载是否成功,因为我无法访问此文件夹.获取成功消息download complete: file:///data/data/com.fileDemo/files/sample.pdf).如何使用相同的方法将文件下载到Android设备的"下载"文件夹?

Let*_*tor 5

在 Cordova 中,使用 FileTransfer,您可以请求TEMPORARYPERSISTENT文件系统

window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail);
window.requestFileSystem(LocalFileSystem.TEMPORARY, 0, gotFS, fail);
Run Code Online (Sandbox Code Playgroud)
  • IOS
    • PERSISTENT 将返回 Documents 目录,
    • TEMPORARY 将返回缓存目录
  • 安卓
    • PERSISTENT 将返回 SD 卡/手机内存的根目录
    • TEMPORARY 将返回数据文件夹内的文件夹。

参考File API&FileTransfer了解更多信息。

  • 我刚试过这个,但 gotFs 指向应用程序的数据文件夹。不是根目录下的下载文件夹。是否可以访问根目录下的下载文件夹? (4认同)
  • 对于那些仍然坚持这个问题的人,`cordova.file.externalRootDirectory + 'Download/'` 或 `fileSystem.root.toURL() + 'Download/'` 应该可以工作 (2认同)