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 VirtualPath(string id) { Parts = VirtualDrive.Split(id); }
public void Dispose() { VirtualDrive.FreeFile(Id, Type); }
public static void Exit() { VirtualDrive.DeleteDirectory(recycleBinFolder, true); }
public static void Init() { VirtualDrive.Store(Path.Combine(recycleBinFolder, "tmp.bin"), null); RecycleBin.Instance.RootDir = recycleBinFolder; }
private string RecycleBinNameDir() { return(VirtualDrive.GetDirectories(RootDir).Length.ToString()); }
private string RecycleBinNameFile() { return(VirtualDrive.GetFiles(RootDir, "*.*").Length.ToString() + ".trash"); }