我有一个垃圾目录,我可以在其中下载,一次性项目,电子邮件草稿以及其他可能有用几天但不需要永久保存的东西.为了阻止这个目录接管我的机器,我写了一个程序,它将删除超过指定天数的所有文件,并记录一些关于删除的文件数量及其大小的统计信息,只是为了好玩.
我注意到一些项目文件夹的生存时间比他们应该的长,所以我开始调查.特别是,似乎我使用SVN的项目的文件夹都在附近.事实证明,.svn目录中的只读文件不会被删除.我只是对一个只读文件进行了一个简单的测试,发现System.IO.File.Delete
并且System.IO.FileInfo.Delete
不会删除只读文件.
我不关心保护这个特定目录中的文件; 如果有重要的东西在那里,它就在错误的地方.是否有可以删除只读文件的.NET类,或者我是否必须检查只读属性并删除它们?
根据File.Delete的文档,您必须删除只读属性.您可以使用File.SetAttributes()设置文件的属性.
using System.IO; File.SetAttributes(filePath, FileAttributes.Normal); File.Delete(filePath);
根据File.Delete的文档,您必须删除只读属性.您可以使用File.SetAttributes()设置文件的属性.
如果您碰巧使用FileInfo
对象,则等效于:
file.IsReadOnly = false; file.Delete();