From 7c5d0e3341dc0104b42a8ba9d4650583c11bb829 Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Fri, 19 Jul 2019 21:37:02 +0100 Subject: [PATCH] Implement ISO9660 mapblock. --- DiscImageChef.Filesystems/ISO9660/File.cs | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/DiscImageChef.Filesystems/ISO9660/File.cs b/DiscImageChef.Filesystems/ISO9660/File.cs index 2c04c9c12..a4a034fa7 100644 --- a/DiscImageChef.Filesystems/ISO9660/File.cs +++ b/DiscImageChef.Filesystems/ISO9660/File.cs @@ -8,7 +8,20 @@ namespace DiscImageChef.Filesystems.ISO9660 { public partial class ISO9660 { - public Errno MapBlock(string path, long fileBlock, out long deviceBlock) => throw new NotImplementedException(); + public Errno MapBlock(string path, long fileBlock, out long deviceBlock) + { + deviceBlock = 0; + if(!mounted) return Errno.AccessDenied; + + Errno err = GetFileEntry(path, out DecodedDirectoryEntry entry); + if(err != Errno.NoError) return err; + + if(entry.Flags.HasFlag(FileFlags.Directory) && !debug) return Errno.IsDirectory; + + deviceBlock = entry.Extent + fileBlock; + + return Errno.NoError; + } public Errno GetAttributes(string path, out FileAttributes attributes) {