我使用 flutter 路径库中的 p.basename 来获取文件名,但我得到了带有扩展名的文件名,如何删除扩展名?为了获取路径,我使用 path_provider 库中的 getApplicationDocumentsDerecory
File newFile = File(filepath);
String name = p.basename(newFile.path);
Run Code Online (Sandbox Code Playgroud)
这是我用来获取文件名的代码
我在 asset 文件夹中有一堆 xml 文件,我添加了 pubspec.yaml 的路径,路径看起来像“assets/data/somename.xml”,我需要从它们获取数据,这就是我现在获取数据的方式
List filePathList = ['assets/data/widow.xml','assets/data/door.xml'];
for(int i = 0;i<filePathList.length;i++){
var xmlFile = XmlDocument.parse(await rootBundle.loadString(filePathList[i]));
checkListtemplateXmlList.add(xmlFile);
}
Run Code Online (Sandbox Code Playgroud)
你怎么看我使用非常糟糕的方式从文件中获取数据,将来会有更多的xml文件,所以我需要一些解决方案来解决这个问题,不要在filePathList中为assets文件夹中的每个文件添加路径。我还创建了一个 loadData 函数来加载我想要的所有文件,但我的 json 文件位于我使用 getApplicationDocumentDirectory 类获得的目录中。有一个代码
static Future<void> loadData() async {
final dir = await getApplicationDocumentsDirectory();
List<FileSystemEntity> files = await dir.list().toList();
for (int i = 0; i < files.length; i++) {
String filepath = files[i].path;
File newFile = File(filepath);
String name = p.basenameWithoutExtension(newFile.path);
String myExtension = p.extension(filepath);
if(myExtension != '.json'){
} else{
checkLists.add(CheckList(name));
}
}
for(int i …Run Code Online (Sandbox Code Playgroud)