protected void OnTearDown() { System.Threading.Thread.Sleep(100); // Timeout for ensure windows release files if (Directory.Exists(_testRoot)) { foreach (var f in Directory.GetFileSystemEntries(_testRoot)) { var fatt = File.GetAttributes(f); if (File.GetAttributes(f).HasFlag(FileAttributes.ReadOnly)) { FileAttributes modAttr = fatt & ~FileAttributes.ReadOnly; File.SetAttributes(f, modAttr); } } FilesystemTools.RemoveReadonly(_testRoot, true); Directory.Delete(_testRoot, true); } }
public void RemoveReadonlyTest() { var dir1 = CreateDir(@"Dir1"); var f1 = CreateFile(@"Dir1\RoFile", true); var d1 = CreateDir(@"Dir1\RoDir", true); var dir2 = CreateDir(@"Dir2", true); var f2 = CreateFile(@"Dir2\RoFile", true); var d2 = CreateDir(@"Dir2\RoDir", true); FilesystemTools.RemoveReadonly(dir1, true); FilesystemTools.RemoveReadonly(dir2); File.GetAttributes(f1).HasFlag(FileAttributes.ReadOnly).Should().Be.False(); File.GetAttributes(d1).HasFlag(FileAttributes.ReadOnly).Should().Be.False(); File.GetAttributes(dir2).HasFlag(FileAttributes.ReadOnly).Should().Be.False(); File.GetAttributes(f2).HasFlag(FileAttributes.ReadOnly).Should().Be.True(); File.GetAttributes(d2).HasFlag(FileAttributes.ReadOnly).Should().Be.True(); }