Flutter Troubleshooting

星期三, 10月 15, 2025 | 1分钟阅读 | 更新于 星期三, 10月 15, 2025

@

这里写摘要

Dart Cannot delete file, OS Error: Access is denied., errno=5

问题描述

描述

通过代码删除文件时出现异常,代码如下:

File file = File(r"c:\xxx\xxx.txt");
file.deleteSync();

异常

[ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: PathAccessException: Cannot delete file, path = ‘[C:\xxx\xxx.txt](Cannot delete file, OS Error: Access is denied., errno = 5)

解决方案

现象

  1. 删除的文件当前用户和管理员都具备所有读写权限。
  2. 删除的文件是只读文件。
  3. 通过管理员权限运行代码可以删除。

解决办法

用户权限下运行代码,通过在移除掉文件的只读再去删除。

File file = File(r"c:\xxx\xxx.txt");
var stat = file.statSync();

print(stat.modeString())

// 判断文件是否为只读属性
if (stat.mode & 0x124 == 0x124) {
  late ProcessResult result;
  // 去除只读属性
  if (Platform.isLinux) {
    result = Process.runSync('chmod', ['+w', file.path]);
  } else if (Platform.isWindows) {
    result = Process.runSync('attrib', ['-r', file.path]);
  }

  if( result.exitCode == 0){
    file.deleteSync();
  }
}else{
  file.deleteSync();
}

© 2025 若烟阁

🌱 Powered by Hugo with theme Dream.

关于我

这里是鱼人小野的个人博客!

为什么要自己搭建博客

在学习的道路上,有很多所思所想所悟,有很多经验希望得到总结。所以,陆陆续续的用过wordpress,CSDN,开源中国,简书,掘金等博客平台,最后还是回到了原点重新装修以前觉得简陋的github.io(这得感谢社区的人们的付出)。

在这个过程中愈发的体会到,自己搭博客的好处。就是没有讳莫如深的审核,也不用看人脸色,更不用担心自己辛苦写的博客再修订一下后没了。(当然,也就没有流量推荐,不过反正都是写给自己看的,能对其他朋友有点帮助那当然更好了