C# 如何删除只读文件?
我有一个垃圾目录,在那里我扔掉下载、一次性项目、电子邮件草稿和其他各种东西,这些东西可能会有用几天,但不需要永远保存。为了阻止这个目录接管我的机器,我编写了一个程序,将删除所有超过指定天数的文件,并记录一些关于删除文件数量及其大小的统计信息,只是为了好玩 我注意到一些项目文件夹的寿命比它们应该的要长,所以我开始调查。特别是,我使用SVN的项目的文件夹似乎仍然存在。事实证明,.svn目录中的只读文件没有被删除。我刚刚对只读文件做了一个简单的测试,发现C# 如何删除只读文件?,c#,.net,file,C#,.net,File,我有一个垃圾目录,在那里我扔掉下载、一次性项目、电子邮件草稿和其他各种东西,这些东西可能会有用几天,但不需要永远保存。为了阻止这个目录接管我的机器,我编写了一个程序,将删除所有超过指定天数的文件,并记录一些关于删除文件数量及其大小的统计信息,只是为了好玩 我注意到一些项目文件夹的寿命比它们应该的要长,所以我开始调查。特别是,我使用SVN的项目的文件夹似乎仍然存在。事实证明,.svn目录中的只读文件没有被删除。我刚刚对只读文件做了一个简单的测试,发现System.IO.file.Delete和Sy
System.IO.file.Delete
和System.IO.FileInfo.Delete
不会删除只读文件
我不关心保护这个特定目录中的文件;如果有什么重要的东西在里面,那就放错地方了。是否有一个.NET类可以删除只读文件,或者我必须检查只读属性并将其剥离?为什么需要检查?只需强制清除只读标志并删除文件。Hm,我想我宁愿
>del /F *
进入预定的任务。可能被用于记录统计信息的批处理文件包装
我遗漏了什么吗?根据,您必须删除只读属性。您可以使用设置文件的属性。根据,您必须删除只读属性。可以使用设置文件的属性
如果您碰巧正在使用
FileInfo
对象,则等效项为:
file.IsReadOnly = false;
file.Delete();
对他想在某个文件达到特定年龄时将其删除。不是每个周期都删除所有文件。他不想删除所有文件,只想删除超过一定时间的所有文件。你会因为正确而获得一张选票,但你的答案是在Tim Stewart的回答之后得出的。在某些情况下,你可能还需要获得文件的所有权,然后才能清除只读标志或删除它。详细信息请参阅。这不是第一个问题。我更改了公认的答案,因为Gulzar的代码示例比Tim Stewart的更详细。我本来应该选那个,但出于某种原因我更喜欢蒂姆的。人是奇怪的东西+感谢你花时间让宇宙变得更美好。如果我的开发人员能够回去纠正我们自己的小违规,我们就可以取消补救编程类了!
file.IsReadOnly = false;
file.Delete();