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);
     }
 }
Exemple #2
0
        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();
        }