private static void TestVirtualDriveCopyDirectory() { string filename00 = VirtualDrive.VirtualFileName(@"Testdir0\testfile0.bin"); string filename01 = VirtualDrive.VirtualFileName(@"Testdir0\testfile1.bin"); string filename10 = VirtualDrive.VirtualFileName(@"Testdir1\testfile0.bin"); string filename11 = VirtualDrive.VirtualFileName(@"Testdir1\testfile1.bin"); VirtualDrive.Store(filename00, null); VirtualDrive.Store(filename01, null); UnitTest.Test(VirtualDrive.ExistsFile(filename00)); UnitTest.Test(VirtualDrive.ExistsFile(filename01)); UnitTest.Test(VirtualDrive.ExistsDirectory( VirtualDrive.VirtualFileName("Testdir0"))); VirtualDrive.CopyDirectory( VirtualDrive.VirtualFileName("Testdir0"), VirtualDrive.VirtualFileName("Testdir1")); UnitTest.Test(VirtualDrive.ExistsFile(filename00)); UnitTest.Test(VirtualDrive.ExistsFile(filename01)); UnitTest.Test(VirtualDrive.ExistsDirectory( VirtualDrive.VirtualFileName("Testdir0"))); UnitTest.Test(VirtualDrive.ExistsFile(filename10)); UnitTest.Test(VirtualDrive.ExistsFile(filename11)); UnitTest.Test(VirtualDrive.ExistsDirectory( VirtualDrive.VirtualFileName("Testdir1"))); VirtualDrive.DeleteDirectory(VirtualDrive.VirtualFileName("Testdir0"), true); VirtualDrive.DeleteDirectory(VirtualDrive.VirtualFileName("Testdir1"), true); }
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(); }
public void DeleteContent() { foreach (var item in VirtualDrive.GetDirectories(RootDir)) { VirtualDrive.DeleteDirectory(item, true); } }
public static void Test_FileWalker() { string[] files = { VirtualDrive.VirtualFileName(@"Test_FileWalker\folder0\file0.bin"), VirtualDrive.VirtualFileName(@"Test_FileWalker\folder0\file1.bin"), VirtualDrive.VirtualFileName(@"Test_FileWalker\folder0\folder0\file0.bin"), VirtualDrive.VirtualFileName(@"Test_FileWalker\folder0\folder0\file1.bin"), VirtualDrive.VirtualFileName(@"Test_FileWalker\folder1\file2.bin"), }; string[] expected = { "\\\\virtualdrive\\Test_FileWalker\\folder0\\folder0\\file0.bin", "\\\\virtualdrive\\Test_FileWalker\\folder0\\folder0\\file1.bin", "\\\\virtualdrive\\Test_FileWalker\\folder0\\file0.bin", "\\\\virtualdrive\\Test_FileWalker\\folder0\\file1.bin", "\\\\virtualdrive\\Test_FileWalker\\folder1\\file2.bin", "\\\\virtualdrive\\Test_FileWalker\\folder0\\folder0", "\\\\virtualdrive\\Test_FileWalker\\folder0", "\\\\virtualdrive\\Test_FileWalker\\folder1", "\\\\virtualdrive\\Test_FileWalker", }; files.ForEach(n => VirtualDrive.Store(VirtualDrive.VirtualFileName(n), null)); FileWalker walker = new FileWalker(VirtualDrive.VirtualFileName("Test_FileWalker")); UnitTest.Test(walker.Files.Concat(walker.Directories).SequenceEqual(expected)); VirtualDrive.DeleteDirectory(VirtualDrive.VirtualFileName("Test_FileWalker"), true); }
private static void TestVirtualDriveDeleteDirectory() { VirtualDrive.Store( VirtualDrive.VirtualFileName(@"Testdir0\testfile0.bin"), null); VirtualDrive.Store( VirtualDrive.VirtualFileName(@"Testdir0\testfile1.bin"), null); UnitTest.Test(VirtualDrive.ExistsDirectory( VirtualDrive.VirtualFileName("Testdir0"))); VirtualDrive.DeleteDirectory( VirtualDrive.VirtualFileName("Testdir0"), true); UnitTest.Test(!VirtualDrive.ExistsDirectory( VirtualDrive.VirtualFileName("Testdir0"))); }
private static void TestAccessObserverMoveDir() { bool didOpenCalledBack = false; bool didCloseCalledBack = false; string folder0 = VirtualDrive.VirtualFileName("myFolder0"); string folder1 = VirtualDrive.VirtualFileName("myFolder1"); string fileName0 = VirtualDrive.VirtualFileName(@"myFolder0\myFile0.bin"); string fileName1 = VirtualDrive.VirtualFileName(@"myFolder0\myFile1.bin"); VirtualDrive.Store(fileName0, new byte[] { }); VirtualDrive.Store(fileName1, new byte[] { }); UnitTest.Test(VirtualDrive.ExistsDirectory(folder0)); EventHandler <AccessObserver.AccessObserverEventArgs> freeHandler = delegate(object sender, AccessObserver.AccessObserverEventArgs args) { UnitTest.Test(args.AffectedId == folder0); UnitTest.Test(args.ObservedId == fileName0); UnitTest.Test(args.NewObservedId == VirtualDrive.VirtualFileName(@"myFolder1\myFile0.bin")); 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 == folder0); 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.MoveDirectory(folder0, folder1); UnitTest.Test(didOpenCalledBack); UnitTest.Test(didCloseCalledBack); UnitTest.Test(VirtualDrive.ExistsDirectory(folder1)); VirtualDrive.DeleteDirectory(VirtualDrive.VirtualFileName(folder1), true); UnitTest.Test(!VirtualDrive.ExistsDirectory(folder0)); UnitTest.Test(!VirtualDrive.ExistsDirectory(folder1)); }
public static void Exit() { VirtualDrive.DeleteDirectory(recycleBinFolder, true); }