【发布时间】:2011-04-21 11:33:48
【问题描述】:
我使用以下代码 sn-p 成功地删除了文件的只读属性:
在 main.cs 中
FileSystemInfo[] sqlParentFileSystemInfo = dirInfo.GetFileSystemInfos();
foreach (var childFolderOrFile in sqlParentFileSystemInfo)
{
RemoveReadOnlyFlag(childFolderOrFile);
}
private static void RemoveReadOnlyFlag(FileSystemInfo fileSystemInfo)
{
fileSystemInfo.Attributes = FileAttributes.Normal;
var di = fileSystemInfo as DirectoryInfo;
if (di != null)
{
foreach (var dirInfo in di.GetFileSystemInfos())
RemoveReadOnlyFlag(dirInfo);
}
}
很遗憾,这不适用于文件夹。运行代码后,当我转到文件夹时,右键单击并执行属性,这是我看到的:
只读标志仍然被检查,尽管它从它下面的文件中删除了它。这会导致进程无法删除此文件夹。当我手动删除标志并重新运行该进程(一个 bat 文件)时,它能够删除该文件(所以我知道这不是 bat 文件的问题)
如何在 C# 中删除此标志?
【问题讨论】: