コード例 #1
0
 public void MoveFileTest()
 {
     using (var testEnvironment = StreamTestEnvironment.FromExistingVhdx(true))
     {
         using (var filesystem = new ExFatEntryFilesystem(testEnvironment.PartitionStream))
         {
             var aFile   = filesystem.FindChild(filesystem.RootDirectory, DiskContent.LongContiguousFileName);
             var aFolder = filesystem.FindChild(filesystem.RootDirectory, DiskContent.EmptyRootFolderFileName);
             filesystem.Move(aFile, aFolder, "noob");
         }
     }
 }
コード例 #2
0
 public void DeleteDirectoryTest()
 {
     using (var testEnvironment = StreamTestEnvironment.FromExistingVhdx(true))
     {
         using (var filesystem = new ExFatEntryFilesystem(testEnvironment.PartitionStream))
         {
             var f = filesystem.FindChild(filesystem.RootDirectory, DiskContent.EmptyRootFolderFileName);
             filesystem.Delete(f);
             Assert.IsNull(filesystem.FindChild(filesystem.RootDirectory, DiskContent.EmptyRootFolderFileName));
         }
     }
 }
コード例 #3
0
 public void UpdateLastAccessTime()
 {
     using (var testEnvironment = StreamTestEnvironment.FromExistingVhdx())
         using (var filesystem = new ExFatEntryFilesystem(testEnvironment.PartitionStream))
         {
             var file    = filesystem.FindChild(filesystem.RootDirectory, DiskContent.LongContiguousFileName);
             var access0 = file.LastAccessTime;
             using (var stream = filesystem.OpenFile(file, FileAccess.Read))
             {
             }
             var access1 = file.LastAccessTime;
             Assert.IsTrue(access1 > access0);
             var file2   = filesystem.FindChild(filesystem.RootDirectory, DiskContent.LongContiguousFileName);
             var access2 = file2.LastAccessTime;
             Assert.AreEqual(access1, access2);
         }
 }
コード例 #4
0
 public void FindFile()
 {
     using (var testEnvironment = StreamTestEnvironment.FromExistingVhdx())
         using (var filesystem = new ExFatEntryFilesystem(testEnvironment.PartitionStream))
         {
             var file = filesystem.FindChild(filesystem.RootDirectory, DiskContent.LongContiguousFileName);
             Assert.IsNotNull(file);
         }
 }
コード例 #5
0
 public void CreateSubDirectoryTest()
 {
     using (var testEnvironment = StreamTestEnvironment.FromExistingVhdx(true))
     {
         using (var filesystem = new ExFatEntryFilesystem(testEnvironment.PartitionStream))
         {
             var s1 = filesystem.CreateDirectory(filesystem.RootDirectory, "SubOne");
             var n2 = "SubTwo";
             var s2 = filesystem.CreateDirectory(s1, n2);
             var f2 = filesystem.FindChild(s1, n2);
             Assert.IsNotNull(f2);
         }
     }
 }
コード例 #6
0
 public void CreateDirectoryTest()
 {
     using (var testEnvironment = StreamTestEnvironment.FromExistingVhdx(true))
     {
         using (var filesystem = new ExFatEntryFilesystem(testEnvironment.PartitionStream))
         {
             var directoryName = "Orphaaaan 1";
             var s1            = filesystem.CreateDirectory(filesystem.RootDirectory, directoryName);
             var f1            = filesystem.FindChild(filesystem.RootDirectory, directoryName);
             // do more checks?
             Assert.IsNotNull(f1);
         }
     }
 }
コード例 #7
0
 public void ReadFile()
 {
     using (var testEnvironment = StreamTestEnvironment.FromExistingVhdx())
         using (var filesystem = new ExFatEntryFilesystem(testEnvironment.PartitionStream))
         {
             var file = filesystem.FindChild(filesystem.RootDirectory, DiskContent.LongContiguousFileName);
             var vb   = new byte[sizeof(ulong)];
             using (var stream = filesystem.OpenFile(file, FileAccess.Read))
             {
                 for (ulong offset = 0; offset < DiskContent.LongFileSize; offset += 8)
                 {
                     stream.Read(vb, 0, vb.Length);
                     var v = LittleEndian.ToUInt64(vb);
                     Assert.AreEqual(v, DiskContent.GetLongContiguousFileNameOffsetValue(offset));
                 }
             }
         }
 }
コード例 #8
0
        public void CreateEmptyFileTest()
        {
            using (var testEnvironment = StreamTestEnvironment.FromExistingVhdx(true))
            {
                using (var filesystem = new ExFatEntryFilesystem(testEnvironment.PartitionStream))
                {
                    using (var s = filesystem.CreateFile(filesystem.RootDirectory, "a.txt"))
                    {
                    }

                    var f = filesystem.FindChild(filesystem.RootDirectory, "a.txt");
                    using (var s2 = filesystem.OpenFile(f, FileAccess.Read))
                    {
                        Assert.AreEqual(-1, s2.ReadByte());
                    }
                }
            }
        }
コード例 #9
0
 public void AppendTest()
 {
     using (var testEnvironment = StreamTestEnvironment.FromExistingVhdx(true))
         using (var filesystem = new ExFatEntryFilesystem(testEnvironment.PartitionStream))
         {
             var file = filesystem.FindChild(filesystem.RootDirectory, DiskContent.LongContiguousFileName);
             using (var s = filesystem.OpenFile(file, FileAccess.ReadWrite))
             {
                 s.Seek(0, SeekOrigin.End);
                 s.WriteByte(123);
             }
             Assert.AreEqual(file.Length, (long)DiskContent.LongFileSize + 1);
             using (var s2 = filesystem.OpenFile(file, FileAccess.Read))
             {
                 s2.Seek(-1, SeekOrigin.End);
                 Assert.AreEqual(123, s2.ReadByte());
                 Assert.AreEqual(-1, s2.ReadByte());
             }
         }
 }
コード例 #10
0
 public void TruncateFileTest()
 {
     using (var testEnvironment = StreamTestEnvironment.FromExistingVhdx(true))
     {
         using (var filesystem = new ExFatEntryFilesystem(testEnvironment.PartitionStream))
         {
             var f = filesystem.FindChild(filesystem.RootDirectory, DiskContent.LongContiguousFileName);
             using (var s = filesystem.OpenFile(f, FileAccess.ReadWrite))
             {
                 s.SetLength(16);
                 s.Seek(0, SeekOrigin.Begin);
                 var b = new byte[8];
                 Assert.AreEqual(8, s.Read(b, 0, b.Length));
                 Assert.AreEqual(DiskContent.GetLongContiguousFileNameOffsetValue(0), LittleEndian.ToUInt64(b));
                 Assert.AreEqual(8, s.Read(b, 0, b.Length));
                 Assert.AreEqual(DiskContent.GetLongContiguousFileNameOffsetValue(8), LittleEndian.ToUInt64(b));
                 Assert.AreEqual(0, s.Read(b, 0, b.Length));
             }
         }
     }
 }