Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何删除只读文件?_C#_.net_File - Fatal编程技术网

C# 如何删除只读文件?

C# 如何删除只读文件?,c#,.net,file,C#,.net,File,我有一个垃圾目录,在那里我扔掉下载、一次性项目、电子邮件草稿和其他各种东西,这些东西可能会有用几天,但不需要永远保存。为了阻止这个目录接管我的机器,我编写了一个程序,将删除所有超过指定天数的文件,并记录一些关于删除文件数量及其大小的统计信息,只是为了好玩 我注意到一些项目文件夹的寿命比它们应该的要长,所以我开始调查。特别是,我使用SVN的项目的文件夹似乎仍然存在。事实证明,.svn目录中的只读文件没有被删除。我刚刚对只读文件做了一个简单的测试,发现System.IO.file.Delete和Sy

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

我注意到一些项目文件夹的寿命比它们应该的要长,所以我开始调查。特别是,我使用SVN的项目的文件夹似乎仍然存在。事实证明,.svn目录中的只读文件没有被删除。我刚刚对只读文件做了一个简单的测试,发现
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();