You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 10:22:40