Esempio n. 1
0
        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();
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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();
        }
Esempio n. 4
0
        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;
        }
Esempio n. 5
0
        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)));
        }
Esempio n. 6
0
        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);
        }
Esempio n. 7
0
        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");
            }
        }