Windows下Dart/Flutter路径混合斜杠报错的解决咨询
解决Windows下Dart/Flutter路径正反斜杠混合报错问题
问题根源
你用String mypath = 'C:\test';时,Dart会把\t解析成制表符,而非路径里的反斜杠,导致实际路径变成C: est(C:加制表符加est),后续拼接其他路径时就会出现正反斜杠混合的情况,触发FileSystemException。
三种解决方法
用原始字符串避免转义
Dart支持带r前缀的原始字符串,里面的反斜杠不会被转义,直接作为普通字符处理:String mypath = r'C:\test'; // 后续拼接可直接用反斜杠: String fullPath = '$mypath\\myNextApp'; // 或者直接写完整原始路径: String fullPath = r'C:\test\myNextApp';全程使用正斜杠
Windows系统本身兼容正斜杠作为路径分隔符,统一用正斜杠就不会有混合问题:String mypath = 'C:/test'; String fullPath = '$mypath/myNextApp'; // 生成的路径是C:/test/myNextApp,Windows完全能识别用官方path包处理(推荐)
Dart/Flutter有官方维护的path包,专门处理跨平台路径,自动适配系统分隔符,彻底避免手动拼接错误:- 在
pubspec.yaml的dependencies里添加:path: ^1.8.3 # 可替换为最新版本 - 导入包并使用
path.join()拼接路径:import 'package:path/path.dart' as path; void main() { String mypath = 'C:/test'; String fullPath = path.join(mypath, 'myNextApp'); // Windows下自动生成C:\test\myNextApp,其他系统生成对应格式 }
- 在
内容的提问来源于stack exchange,提问作者DktPhl2018
相关产品推荐
相关产品推荐

