ionic 2 中 android 文件系统的文件和文件夹列表

listing of files and folders of android file system in ionic 2

我正在尝试列出移动设备外部存储中存在的所有文件和文件夹,但无法获得所需的结果。我从代码中获得了帮助,但它无法识别 window 对象。任何人都可以帮助这个。

getFiles(path){
  window.resolveLocalFileSystemURL(path,
    function (fileSystem) {
      var reader = fileSystem.createReader();
      reader.readEntries(
        function (entries) {
          console.log(entries);
        },
        function (err) {
          console.log(err);
        }
      );
    }, function (err) {
      console.log(err);
    }
  );   

我使用了文件路径插件,但结果并不是我想要的。enter image description here我的代码也是

import {Component} from '@angular/core';
import {NavController} from 'ionic-angular';
import {Transfer, TransferObject} from '@ionic-native/transfer';
import {File} from '@ionic-native/file';
import { FilePath } from '@ionic-native/file-path';
import {Platform} from 'ionic-angular';



declare var cordova:any;

@Component({
  selector: 'page-contact',
  templateUrl: 'contact.html',
  providers: [FilePath, Transfer, TransferObject, File]
 
})
export class ContactPage {

  storageDirectory: string = '';
  
 constructor(public navCtrl: NavController, private filePath: FilePath, public platform: Platform, private transfer: Transfer, private file: File){
 
  this.platform.ready().then(() => {
      
   if(this.platform.is('android')) {
        this.storageDirectory = cordova.file.externalDataDirectory;
  console.log(this.storageDirectory);
      }
      else {
        // exit otherwise, but you could add further types here e.g. Windows
        return false;
  
      }
    });

 this.filePath.resolveNativePath(this.storageDirectory+'files')
  .then(filePath => console.log("this is my file path" + filePath))
  .catch(err => console.log(err)); 
 
 
 }
 
}

这甚至没有在控制台上打印文件名以及我如何在设备屏幕上显示文件内容,请指导我。

   import {Component} from '@angular/core';
import {NavController} from 'ionic-angular';
import {Transfer, TransferObject} from '@ionic-native/transfer';
import {File} from '@ionic-native/file';
import { FilePath } from '@ionic-native/file-path';
import {Platform} from 'ionic-angular';

@Component({
  selector: 'page-contact',
  templateUrl: 'contact.html',
 providers: [FilePath, Transfer, TransferObject, File]
})
export class ContactPage {

  storageDirectory: string = '';
  
 constructor(public navCtrl: NavController, private filePath: FilePath, public platform: Platform, private transfer: Transfer, private file: File){
 
  this.platform.ready().then(() => {
       file.listDir(file.externalDataDirectory,'').then((result)=>{
     console.log(result);
/*result will have an array of file objects with 
file details or if its a directory*/
  for(let file of result){
    if(file.isDirectory == true && file.name !='.' && file.name !='..'){
  // Code if its a folder
 }else if(file.isFile == true){
  // Code if its a file
  let name=file.name // File name
  let path=file.path // File path
    file.getMetadata(function (metadata) {
   let size=metadata.size; // Get file size
      })
 }
    }
  }
})
  
}
}

您应该使用 @ionic-native/file documentation,它可以让您更深入地了解不同本机脚本的用法。

Home.Html

列出目录

<ion-list>
  <ion-item *ngFor="let printValues of showFile">
  {{printValues}}
</ion-item>