我有一个垃圾目录,在那里我可以扔掉下载、一次性项目、邮箱草稿,以及其他各种可能有用几天但不需要永远保存的东西.为了阻止这个目录接管我的机器,我编写了一个程序,将删除所有超过指定天数的文件,并记录一些关于删除文件数量及其大小的统计信息,只是为了好玩.

我注意到一些项目文件夹的生命周期 比它们应该的要长,所以我开始调查.特别是,我使用过SVN的项目的文件夹似乎仍然存在.事实证明,文件中的只读文件.未删除svn目录.我只是对一个只读文件做了一个简单的测试,发现System.IO.File.DeleteSystem.IO.FileInfo.Delete不会删除一个只读文件.

我不在乎保护这个特定目录中的文件;如果里面有重要的东西,那就放错地方了.有没有一个.NET类可以删除只读文件,还是我必须判断只读属性并剥离它们?

推荐答案

根据File.Delete's documentation,,必须go 掉只读属性.可以使用File.SetAttributes()设置文件的属性.

using System.IO;

File.SetAttributes(filePath, FileAttributes.Normal);
File.Delete(filePath);

.net相关问答推荐

.NET Core 中的微服务

如何规范机器之间连字符的排序顺序?

如何将 Assembly.CodeBase 转换为 C# 中的文件系统路径?

C#.Net 中的可选返回

我应该创建一个 DateRange 对象吗?

在 C# 中将字符串转换为 colored颜色

不同命名空间中的部分类

在 WPF 窗口中获取当前聚焦的元素/控件

如何在 C# 中打开 Excel 文件?

如何从 appsettings.json 中获取价值

Linq查询分组并 Select 第一个项目

如何对无法加载的 VSTO 插件进行故障排除?

监听依赖属性的变化

仅使用 XAML 绘制纯色三角形

在 .Net 中调用 Web 服务时绕过无效的 SSL 证书错误

将 SignalR 2.0 .NET 客户端重新连接到服务器集线器的最佳实践

泛型类的默认构造函数的语法是什么?

Windows 服务在哪个目录中运行?

Roslyn 编译代码失败

如何在我的机器上找到 fuslogvw.exe?