如何获取素材资源中的文件路径

时间:2019-02-12 21:04:23

标签: dart flutter

我想在资产中打开pdf文件,所以我需要获取文件路径。

这是我的解决方案,由于无法获取路径,因此不得不复制文件。 我认为最好的解决方案是直接获取文件地址。

Future<void> writeToFile(ByteData data, String path) {
    final buffer = data.buffer;
    return new File(path).writeAsBytes(
        buffer.asUint8List(data.offsetInBytes, data.lengthInBytes));
  }


  Future<File> createFileOfPdfUrl() async {

    final filename = 'test.pdf';
    var bytes = await rootBundle.load("assets/data/test.pdf");

    String dir = (await getApplicationDocumentsDirectory()).path;
    writeToFile(bytes,'$dir/$filename');
    File file = new File('$dir/$filename');

    return file;
  }

1 个答案:

答案 0 :(得分:1)

要使用资产,您需要按照Flutter docs about assets and images中的说明在 pubspec.yaml 上声明路径,如下所示:

flutter:
  assets:
    - assets/

如果要使用文件,则取决于您的实现,而无需了解更多信息,我可以指示您遵循Reading and Writing Oficial Docs