我成功地使用以下代码片段从文件中删除只读属性:
在main.cs中:
在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);
}
}
很遗憾,这在文件夹上不起作用。 运行代码后,当我进入文件夹、右键点击并选择属性时,会看到以下内容:
只读标志仍然被选中,尽管已从其中的文件中删除。这会导致一个进程无法删除该文件夹。当我手动删除标志并重新运行进程(一个批处理文件)时,它能够删除该文件(所以我知道这不是批处理文件的问题)
如何在C#中移除此标志?