【发布时间】:2010-09-20 22:07:57
【问题描述】:
我有一个垃圾目录,我把下载、一次性项目、电子邮件草稿和其他各种可能在几天内有用但不需要永远保存的东西扔在里面。为了阻止这个目录接管我的机器,我编写了一个程序,该程序将删除所有超过指定天数的文件,并记录一些有关已删除文件数量及其大小的统计信息,只是为了好玩。
我注意到一些项目文件夹的寿命比应有的长得多,因此我开始进行调查。特别是,我使用过 SVN 的项目的文件夹似乎一直存在。事实证明,.svn 目录中的只读文件没有被删除。我刚刚对一个只读文件做了一个简单的测试,发现System.IO.File.Delete和System.IO.FileInfo.Delete不会删除一个只读文件。
我不关心保护这个特定目录中的文件;如果里面有重要的东西,那就是在错误的地方。是否有可以删除只读文件的 .NET 类,还是我必须检查只读属性并剥离它们?
【问题讨论】:
-
我更改了接受的答案,因为 Gulzar 的代码示例比 Tim Stewart 的更详细。一开始就应该选择那个,但出于某种原因,我更喜欢蒂姆的。人是奇怪的东西!
-
+1 花时间让宇宙中的事情变得更正确。如果我的开发人员能够回去纠正我们自己的小错误,我们就可以取消补救编程课程!