public void Clear() { CheckIsValid(); foreach (var fileName in recycledToSrc.Keys) { if (VirtualDrive.ExistsDirectory(fileName)) { try { VirtualDrive.DeleteDirectory(fileName, true); } catch (Exception) { } } else if (VirtualDrive.ExistsFile(fileName)) { VirtualDrive.DeleteFile(fileName); } } recycledToSrc.Clear(); srcToRecycled.Clear(); }
private static void TestAccessObserverMoveFile() { bool didOpenCalledBack = false; bool didCloseCalledBack = false; string fileName0 = VirtualDrive.VirtualFileName(@"myFile0.bin"); string fileName1 = VirtualDrive.VirtualFileName(@"myFile1.bin"); VirtualDrive.Store(fileName0, new byte[] { }); EventHandler <AccessObserver.AccessObserverEventArgs> freeHandler = delegate(object sender, AccessObserver.AccessObserverEventArgs args) { UnitTest.Test(args.AffectedId == fileName0); UnitTest.Test(args.ObservedId == fileName0); UnitTest.Test(args.NewObservedId == fileName1); UnitTest.Test(args.Type == AccessObserver.AccessType.Move); UnitTest.Test(args.Request == AccessObserver.AccessRequest.FreeShared); didCloseCalledBack = true; VirtualDrive.ObserverFreeShared.Unregister(fileName0); UnitTest.Test(VirtualDrive.ObserverFreeShared.CountObservedIds == 0); }; EventHandler <AccessObserver.AccessObserverEventArgs> lockHandler = delegate(object sender, AccessObserver.AccessObserverEventArgs args) { UnitTest.Test(args.AffectedId == fileName0); UnitTest.Test(args.ObservedId == fileName0); UnitTest.Test(args.NewObservedId == fileName0); UnitTest.Test(args.Type == AccessObserver.AccessType.Move); UnitTest.Test(args.Request == AccessObserver.AccessRequest.LockExclusive); didOpenCalledBack = true; VirtualDrive.ObserverLockExclusive.Unregister(fileName0); UnitTest.Test(VirtualDrive.ObserverLockExclusive.CountObservedIds == 0); VirtualDrive.ObserverFreeShared.Register(fileName0, freeHandler); }; VirtualDrive.ObserverLockExclusive.Register(fileName0, lockHandler); UnitTest.Test(!didOpenCalledBack); UnitTest.Test(!didCloseCalledBack); VirtualDrive.MoveFile(fileName0, fileName1); UnitTest.Test(didOpenCalledBack); UnitTest.Test(didCloseCalledBack); VirtualDrive.DeleteFile(fileName1); }
private static void TestVirtualDriveExistsDirectory() { UnitTest.Test(VirtualDrive.ExistsDirectory( VirtualDrive.VirtualFileName("TestID3VirtualDrive"))); UnitTest.Test(!VirtualDrive.ExistsDirectory( VirtualDrive.VirtualFileName("ARandomPath"))); string folder = VirtualDrive.VirtualFileName("folder"); string fileName = Path.Combine(folder, "t00.bin"); VirtualDrive.Store(fileName, null); UnitTest.Test(VirtualDrive.ExistsDirectory(folder)); UnitTest.Test(!VirtualDrive.ExistsDirectory(fileName)); VirtualDrive.DeleteFile(fileName); }
private static void TestGetFiles() { string[] fileNames = new string[] { VirtualDrive.VirtualFileName(@"TestGetFiles\TestDir0\Data0.bin"), VirtualDrive.VirtualFileName(@"TestGetFiles\TestDir0\Data1.bin"), VirtualDrive.VirtualFileName(@"TestGetFiles\TestDir1\Data2.bin"), VirtualDrive.VirtualFileName(@"TestGetFiles\TestDir1\Data3.bin") }; foreach (var file in fileNames) { VirtualDrive.Store(file, new byte[] { }); } string[] files0 = VirtualDrive.GetFiles( VirtualDrive.VirtualFileName(@"TestGetFiles"), "*.bin"); UnitTest.Test(files0.Length == 0); string[] files1 = VirtualDrive.GetFiles( VirtualDrive.VirtualFileName(@"TestGetFiles\TestDir0"), "*.bin"); UnitTest.Test(files1.Length == 2); UnitTest.Test(files1[0] == fileNames[0]); UnitTest.Test(files1[1] == fileNames[1]); string[] files2 = VirtualDrive.GetFiles( VirtualDrive.VirtualFileName(@"TestGetFiles\TestDir1"), "*.bin"); UnitTest.Test(files2.Length == 2); UnitTest.Test(files2[0] == fileNames[2]); UnitTest.Test(files2[1] == fileNames[3]); foreach (var file in fileNames) { VirtualDrive.DeleteFile(file); } }
private static void TestGetDirectories() { string[] fileNames = new string[] { VirtualDrive.VirtualFileName(@"TestGetDirectories\TestDir0\Data0.bin"), VirtualDrive.VirtualFileName(@"TestGetDirectories\TestDir0\Data1.bin"), VirtualDrive.VirtualFileName(@"TestGetDirectories\TestDir1\Data0.bin"), VirtualDrive.VirtualFileName(@"TestGetDirectories\TestDir1\Data1.bin") }; foreach (var file in fileNames) { VirtualDrive.Store(file, new byte[] {}); } string[] dirs = VirtualDrive.GetDirectories(VirtualDrive.VirtualFileName(@"TestGetDirectories")); UnitTest.Test(dirs.Length == 2); UnitTest.Test(dirs[0] == VirtualDrive.VirtualFileName(@"TestGetDirectories\TestDir0")); UnitTest.Test(dirs[1] == VirtualDrive.VirtualFileName(@"TestGetDirectories\TestDir1")); foreach (var file in fileNames) { VirtualDrive.DeleteFile(file); } }