public void AllEntries_List() { using (Stream stream = File.OpenRead("TestAssets/hfsp.cdr")) using (HfsPlusFileSystem hfs = new HfsPlusFileSystem(stream)) { var dir = hfs.GetDirectoryInfo("\\"); Assert.Collection( dir.GetFileSystemInfos(), e => { var dir = Assert.IsType <DiscFileSystemInfo>(e); Assert.Equal(".HFS+ Private Directory Data\r", dir.Name); }, e => { var file = Assert.IsType <DiscFileSystemInfo>(e); Assert.Equal("hello.txt", file.Name); }, e => { var file = Assert.IsType <DiscFileSystemInfo>(e); Assert.Equal("System", file.Name); }, e => { var dir = Assert.IsType <DiscFileSystemInfo>(e); Assert.Equal("\0\0\0\0HFS+ Private Data", dir.Name); }); } }
protected override void DoRun() { using (var disk = VirtualDisk.OpenDisk(_dmg.Value, FileAccess.Read)) { // Find the first (and supposedly, only, HFS partition) foreach (var volume in VolumeManager.GetPhysicalVolumes(disk)) { foreach (var fileSystem in FileSystemManager.DetectFileSystems(volume)) { if (fileSystem.Name == "HFS+") { using (HfsPlusFileSystem hfs = (HfsPlusFileSystem)fileSystem.Open(volume)) { var source = hfs.GetDirectoryInfo(_folder.Value); var target = new DirectoryInfo(Path.Combine(Environment.CurrentDirectory, source.Name)); if (target.Exists) { target.Delete(true); } target.Create(); CopyDirectory(source, target, _recursive.IsPresent); } break; } } } } }
protected override void DoRun() { using (var disk = VirtualDisk.OpenDisk(_dmg.Value, FileAccess.Read)) using (HfsPlusFileSystem hfs = new HfsPlusFileSystem(disk.Partitions[3].Open())) { var source = hfs.GetDirectoryInfo(_folder.Value); var target = new DirectoryInfo(Path.Combine(Environment.CurrentDirectory, source.Name)); if (target.Exists) { target.Delete(true); } target.Create(); CopyDirectory(source, target, _recursive.IsPresent); } }