ionic-读取android资产文件

时间:2018-12-11 02:10:08

标签: android ionic-framework ionic3

我正在尝试在android资产子文件夹中读取文件,我曾尝试使用file.checkDir和file.checkFile,但似乎没有任何效果。这是一些checkDir代码:

  this.file.checkDir(
  this.file.dataDirectory, 'file:///android_asset/xl72.png').then(
    _ => alert('Directory exists')
  ).catch(err => alert('Directory doesn\'t exist'));

checkFile代码:

this.file.checkFile(this.file.dataDirectory, 'xl72.png').then(
            (files) => {
              alert('files found ' + files)
            }
          ).catch (
            (err) => {
              alert(JSON.stringify(err))
            }
          );

有人知道怎么做吗? 谢谢。

1 个答案:

答案 0 :(得分:0)

我也想从资产文件夹中打开文件,问题是它很难找到它的路径。有了这个片段,我发现很容易:

    this.file.listDir(this.file.applicationDirectory, '')
    .then( value => {
      console.log(value);
    });

结果:

[{"isFile":true,"isDirectory":false,"name":"chrome_100_percent.pak","fullPath":"/chrome_100_percent.pak","filesystem":"<FileSystem: assets>","nativeURL":"file:///android_asset/chrome_100_percent.pak"},{"isFile":false,"isDirectory":true,"name":"fallback-locales","fullPath":"/fallback-locales/","filesystem":"<FileSystem: assets>","nativeURL":"file:///android_asset/fallback-locales/"},{"isFile":true,"isDirectory":false,"name":"icudtl.dat","fullPath":"/icudtl.dat","filesystem":"<FileSystem: assets>","nativeURL":"file:///android_asset/icudtl.dat"},{"isFile":false,"isDirectory":true,"name":"images","fullPath":"/images/","filesystem":"<FileSystem: assets>","nativeURL":"file:///android_asset/images/"},{"isFile":true,"isDirectory":false,"name":"natives_blob.bin","fullPath":"/natives_blob.bin","filesystem":"<FileSystem: assets>","nativeURL":"file:///android_asset/natives_blob.bin"},{"isFile":true,"isDirectory":false,"name":"resources.pak","fullPath":"/resources.pak","filesystem":"<FileSystem: assets>","nativeURL":"file:///android_asset/resources.pak"},{"isFile":true,"isDirectory":false,"name":"snapshot_blob_32.bin","fullPath":"/snapshot_blob_32.bin","filesystem":"<FileSystem: assets>","nativeURL":"file:///android_asset/snapshot_blob_32.bin"},{"isFile":true,"isDirectory":false,"name":"snapshot_blob_64.bin","fullPath":"/snapshot_blob_64.bin","filesystem":"<FileSystem: assets>","nativeURL":"file:///android_asset/snapshot_blob_64.bin"},{"isFile":false,"isDirectory":true,"name":"stored-locales","fullPath":"/stored-locales/","filesystem":"<FileSystem: assets>","nativeURL":"file:///android_asset/stored-locales/"},{"isFile":true,"isDirectory":false,"name":"webapk6.dex","fullPath":"/webapk6.dex","filesystem":"<FileSystem: assets>","nativeURL":"file:///android_asset/webapk6.dex"},{"isFile":true,"isDirectory":false,"name":"webapk_dex_version.txt","fullPath":"/webapk_dex_version.txt","filesystem":"<FileSystem: assets>","nativeURL":"file:///android_asset/webapk_dex_version.txt"},{"isFile":false,"isDirectory":true,"name":"webkit","fullPath":"/webkit/","filesystem":"<FileSystem: assets>","nativeURL":"file:///android_asset/webkit/"},{"isFile":false,"isDirectory":true,"name":"www","fullPath":"/www/","filesystem":"<FileSystem: assets>","nativeURL":"file:///android_asset/www/"}]

经过深入挖掘,得出的最终结果是:

fullPath: "/www/assets/blink.bin"

最终结论。可以使用以下路径访问放入project folder/www/assets的所有文件: this.file.listDir(this.file.applicationDirectory, 'www/assets')

编辑 即使我知道完整路径我也无法使用文件opener2打开文件,但我还是决定使用此插件来查找和打开文件,并且效果很好https://ionicframework.com/docs/native/file