【问题标题】:Flutter how to specify file path in asset folderFlutter如何在资产文件夹中指定文件路径
【发布时间】:2020-04-18 02:29:35
【问题描述】:

我在资产文件夹中有一个声音文件,我可以使用如下代码检查它是否存在:

    if (FileSystemEntity.typeSync(
        '/Users/admin/Library/Developer/CoreSimulator/Devices/AC8BED2E-4EF1-4777-A399-EBD52E38B5C7/data/Containers/Data/Application/1390EE2C-A5D8-46E0-A414-AAC2B83CD20C/Library/Caches/sounds/3/unbeaten.m4a') !=
    FileSystemEntityType.notFound) {
  print('file is found');
} else {
  print('not found');
}

如您所见,我需要使用绝对路径。有没有办法使用类似“assets/sounds/3/unbeaten.m4a”的路径检查文件是否在资产文件夹中,而无需指定整个路径?

【问题讨论】:

标签: flutter


【解决方案1】:

正如@frank06 所提到的,通过使用 path_provider,我可以使用以下代码检查文件是否在资产文件夹中。但这仅适用于 iOS,我仍在尝试为 Android 寻找解决方案。注意需要为 iOS 添加 /Library 和 /Caches。对于Android,我似乎看不到与iOS不同的路径。

如果有人能提供一些有关 Android 的信息,我将不胜感激。 appDir 在 Android 上看起来像这样 - /data/user/0/com.learnchn.alsospeak/app_flutter/

directory = await getApplicationDocumentsDirectory();
var parent = directory.parent;

var directoryPath = directory.path;
var parentPath = parent.path;

String testString = 'sounds/3/unbeaten.m4a';

parentPath = parentPath + '/Library' '/Caches/' '$testString';

【讨论】:

    猜你喜欢
    • 2014-05-19
    • 1970-01-01
    • 2012-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-24
    • 1970-01-01
    相关资源
    最近更新 更多