如何使用Dart判断路径是文件还是文件夹
在Dart中判断路径是文件还是文件夹
要实现这个需求,核心依赖Dart的dart:io库,下面直接给出两种实用的实现方式:
方式一:使用FileSystem类(对应你提到的方法)
FileSystem是dart:io中的抽象类,通过FileSystem.current可获取当前系统的文件系统实例,之后就能调用isDirectory和isFile方法:
import 'dart:io'; void main() async { final targetPath = '/path/to/your/target'; // 替换为你的目标路径 // 获取当前文件系统实例 final fileSystem = FileSystem.current; // 异步判断是否为文件夹 final isDirectory = await fileSystem.isDirectory(targetPath); // 异步判断是否为文件 final isFile = await fileSystem.isFile(targetPath); print('路径 $targetPath 是文件夹:$isDirectory'); print('路径 $targetPath 是文件:$isFile'); }
方式二:直接使用FileSystemEntity静态方法(更常用)
实际开发中,更多会用FileSystemEntity的静态方法做判断,代码更简洁直观:
import 'dart:io'; void main() async { final targetPath = '/path/to/your/target'; // 替换为你的目标路径 final isDirectory = await FileSystemEntity.isDirectory(targetPath); final isFile = await FileSystemEntity.isFile(targetPath); print('路径 $targetPath 是文件夹:$isDirectory'); print('路径 $targetPath 是文件:$isFile'); }
关键注意点
- 这些判断方法都是异步的,必须配合
async/await使用; - 如果目标路径不存在,
isDirectory和isFile都会返回false,若需先确认路径存在,可先调用FileSystemEntity.exists(targetPath); - 必须导入
dart:io库,否则无法使用上述类和方法。
内容的提问来源于stack exchange,提问作者DktPhl2018
相关产品推荐
相关产品推荐

