C#路径使用%LOCALAPPDATA%环境变量无效,删除目录按钮点击无响应无报错
问题原因
你的代码中使用了包含环境变量占位符%LOCALAPPDATA%的路径,.NET 原生的IO类(Directory.Exists、DirectoryInfo)不会自动解析这类系统环境变量占位符,实际传入的是包含%字符的无效路径,导致Directory.Exists(path)始终返回false,删除逻辑从未触发,所以没有任何执行效果也不会抛出错误。
修复方案
- 调用
Environment.ExpandEnvironmentVariables()方法解析路径中的环境变量占位符,得到真实的本地路径 - 可按需添加异常捕获逻辑,处理权限不足、目录内文件被占用等可能的异常场景,方便问题排查
- 复用解析后的路径即可,不需要重复定义相同的路径字符串
private void CacheClear_Click(object sender, RoutedEventArgs e) { // 解析环境变量得到真实路径 string path = Environment.ExpandEnvironmentVariables(@"%LOCALAPPDATA%\FiveM\FiveM Application Data\data\cache"); if (Directory.Exists(path)) { try { Directory.Delete(path, true); // 可在此处添加删除成功的提示逻辑 } catch (Exception ex) { // 可在此处添加异常提示逻辑,比如输出错误信息方便排查 // MessageBox.Show($"删除失败:{ex.Message}"); } } }
注意:如果解析路径后删除仍失败,大概率是程序运行权限不足,或者目录内有文件正在被其他进程占用,可以通过上述异常捕获的错误信息定位具体问题。
内容的提问来源于stack exchange,提问作者OssieFromDK
相关产品推荐
相关产品推荐

