private IEnumerable <ExFatEntryInformation> GetEntries(ExFatEntryInformation entryInformation, int depth) { if (depth == 0 || !entryInformation.Attributes.HasAny(FileAttributes.Directory)) { return(_noEntry); } return(_filesystem.EnumerateEntries(entryInformation.Path).SelectMany(e => new[] { e }.Concat(GetEntries(e, depth - 1)))); }
public void ReadSubFolderFilesTest() { using (var testEnvironment = StreamTestEnvironment.FromExistingVhdx()) using (var filesystem = new ExFatPathFilesystem(testEnvironment.PartitionStream)) { var entries = filesystem.EnumerateEntries(DiskContent.LongFolderFileName).ToArray(); Assert.AreEqual(DiskContent.LongFolderEntriesCount, entries.Length); } }
public void DeleteTree() { using (var testEnvironment = StreamTestEnvironment.FromExistingVhdx(true)) { using (var filesystem = new ExFatPathFilesystem(testEnvironment.PartitionStream)) { filesystem.DeleteTree(DiskContent.LongFolderFileName); Assert.IsFalse(filesystem.EnumerateEntries("") .Any(e => e.Path == $@"\{DiskContent.LongFolderFileName}")); } } }
public void ReadRootFolderEntriesTest() { using (var testEnvironment = StreamTestEnvironment.FromExistingVhdx()) using (var filesystem = new ExFatPathFilesystem(testEnvironment.PartitionStream)) { var entries = filesystem.EnumerateEntries(@"\").ToArray(); Assert.IsTrue(entries.Any(e => e.Path == DiskContent.LongContiguousFileName)); Assert.IsTrue(entries.Any(e => e.Path == DiskContent.LongSparseFile1Name)); Assert.IsTrue(entries.Any(e => e.Path == DiskContent.EmptyRootFolderFileName)); Assert.IsTrue(entries.Any(e => e.Path == DiskContent.LongFolderFileName)); } }