Flutter在Windows创建绝对路径目录报错,寻求解决办法
解决Windows下Dart通过绝对路径创建目录的FileSystemException错误
核心问题是用错了API:File类负责创建和操作文件,而非目录。当路径末尾带斜杠时,Windows系统会判定这是无效的文件名格式,因此抛出「文件名、目录名或卷标语法不正确」的错误。
你之前去掉路径末尾斜杠能成功,实际是创建了一个无扩展名的文件,并非你需要的目录——这就是你所说“能创建文件但无法创建目录”的原因。
正确做法是使用Directory类创建目录,无论路径末尾是否带斜杠都能正常工作:
错误代码:
var path = "C:/Users/User/Documents/myapp/"; File(path).createSync(recursive: true);
修正后的代码:
import 'dart:io'; // 确保导入io库 var path = "C:/Users/User/Documents/myapp/"; Directory(path).createSync(recursive: true);
如果使用反斜杠路径,记得在Dart字符串中转义(用\\替代\):
var path = "C:\\Users\\User\\Documents\\myapp\\"; Directory(path).createSync(recursive: true);
这样就能正确创建目标目录,不会再触发语法错误。
内容的提问来源于stack exchange,提问作者Bobin
相关产品推荐
相关产品推荐

