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"); } } }
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)); } } }
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); } }
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); } }
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); } } }
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); } } }
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)); } } } }
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()); } } } }
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()); } } }
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)); } } } }