我想在资产中打开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;
}
答案 0 :(得分:1)
要使用资产,您需要按照Flutter docs about assets and images中的说明在 pubspec.yaml 上声明路径,如下所示:
flutter:
assets:
- assets/
如果要使用文件,则取决于您的实现,而无需了解更多信息,我可以指示您遵循Reading and Writing Oficial Docs。