离子角,如何获取SD卡的根目录



我正在使用离子框架来执行文件浏览器应用程序,但仅在SD卡中。要访问de SD卡,我将使用 file.externalrootdirectory 的文件插件,然后从该文件列表中检索到目录的列表。这是代码:

constructor(public navCtrl: NavController, private fileCtrl: File) {
    this.goToDir("");
}
public goToDir(dir: string){
    this.fileCtrl.listDir(this.fileCtrl.externalRootDirectory, dir).then(
        (list) => {
            this.loadList(list);
        }
    );
}
public loadList(list: any){
    for (let i=0; i<list.length; i++)
    {
        console.log(list[i].fullPath);
    }
 }

这不会返回我的SD卡中的目录,它给了我设备内部存储的目录列表(dirs = android,dcim,下载等(。

我正在Android 4.4和6.0中进行测试,并且我的离子和Cordova已更新为最新。

我是Ionic的新手,我看不到我做错了什么。如果有人可以提供帮助,那真的很酷。

这不会返回我的SD卡中的目录,它给了我设备内部存储的目录列表(dirs = android,dcim,下载等(。

从中,我假设您正在尝试访问物理外部可移动SD卡(例如在三星Galaxy S7中(,而不是"内部SD卡",因为Android引用了它,实际上是内部内存。

例如,在Android 7.1中,我的物理外部可移动SD卡路径是/storage/4975-1401/

我的"内部" SD卡路径是/storage/emulated/0/

cordova-plugin-file无法使您访问物理外部可移动SD卡:对我而言,cordova.file.externalRootDirectory返回file:///storage/emulated/0/

但是,您可以使用Cordova-Diengnostic-Plugin的GetExternalSdcardDetails((将filepath检索到物理外部可移动SD卡:

cordova.plugins.diagnostic.getExternalSdCardDetails(function(details){
    details.forEach(function(detail){
        if(detail.type == "root"){
            cordova.file.externalSdCardRootDirectory = detail.filePath;
        }
    });
}, function(error){
    console.error(error);
});

相关内容

  • 没有找到相关文章

最新更新