private static void TestVirtualDriveReWrite() { string fileName = VirtualDrive.VirtualFileName( @"TestID3VirtualDrive\file1"); UnitTest.Test(!VirtualDrive.ExistsFile(fileName)); Stream outStream0 = VirtualDrive.OpenOutStream(fileName); outStream0.WriteByte(0); outStream0.WriteByte(1); outStream0.WriteByte(2); outStream0.Close(); UnitTest.Test(VirtualDrive.ExistsFile(fileName)); UnitTest.Test(VirtualDrive.FileLength(fileName) == 3); Stream outStream1 = VirtualDrive.OpenOutStream(fileName); outStream1.WriteByte(5); outStream1.WriteByte(6); outStream1.Close(); UnitTest.Test(VirtualDrive.ExistsFile(fileName)); UnitTest.Test(VirtualDrive.FileLength(fileName) == 3); Stream inStream = VirtualDrive.OpenInStream(fileName); UnitTest.Test(inStream.ReadByte() == 5); UnitTest.Test(inStream.ReadByte() == 6); UnitTest.Test(inStream.ReadByte() == 2); inStream.Close(); }
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 MoveToRecycleBin(string id) { CheckIsValid(); string src = id; string dst; if (VirtualDrive.ExistsDirectory(id)) { dst = Path.Combine(RootDir, RecycleBinNameDir()); SafeOperations.MoveDirectory(src, dst); } else if (VirtualDrive.ExistsFile(id)) { dst = Path.Combine(RootDir, RecycleBinNameFile()); VirtualDrive.MoveFile(src, dst); } else { throw new Exception("\"" + id + "\" does not exist!"); } recycledToSrc[dst] = src; srcToRecycled[src] = dst; }
public static void Test_RecycleBin_MoveToRecycleBin_Files() { fileNames.ForEach(n => VirtualDrive.Store(VirtualDrive.VirtualFileName(n), null)); fileNames.ForEach(n => UnitTest.Test(VirtualDrive.ExistsFile(n))); fileNames.ForEach(n => RecycleBin.Instance.MoveToRecycleBin(n)); fileNames.ForEach(n => UnitTest.Test(!VirtualDrive.ExistsFile(n))); }
public void Restore(string id) { CheckIsValid(); string recycled = srcToRecycled[id]; string src = id; if (VirtualDrive.ExistsDirectory(recycled)) { SafeOperations.MoveDirectory(recycled, src); } else if (VirtualDrive.ExistsFile(recycled)) { VirtualDrive.MoveFile(recycled, src); } else { throw new Exception("\"" + id + "\" not found!"); } recycledToSrc.Remove(recycled); srcToRecycled.Remove(src); }
private static void Walk(string dirOrFile, List <string> files, List <string> dirs) { if (VirtualDrive.ExistsFile(dirOrFile)) { files.Add(dirOrFile); } else if (VirtualDrive.ExistsDirectory(dirOrFile)) { foreach (var item in VirtualDrive.GetDirectories(dirOrFile)) { Walk(item, files, dirs); } foreach (var item in VirtualDrive.GetFiles(dirOrFile, "*.*")) { Walk(item, files, dirs); } dirs.Add(dirOrFile); } else { throw new Exception("Unknown"); } }