From 0121cdb6d851e361386d367595ee7f49125af031 Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Sun, 14 Apr 2019 11:38:20 +0100 Subject: [PATCH] Implement MapBlock() in Xbox FAT. --- DiscImageChef.Filesystems/FATX/File.cs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/DiscImageChef.Filesystems/FATX/File.cs b/DiscImageChef.Filesystems/FATX/File.cs index 83e04c04f..4f40c53af 100644 --- a/DiscImageChef.Filesystems/FATX/File.cs +++ b/DiscImageChef.Filesystems/FATX/File.cs @@ -46,7 +46,17 @@ namespace DiscImageChef.Filesystems.FATX deviceBlock = 0; if(!mounted) return Errno.AccessDenied; - throw new NotImplementedException(); + Errno err = Stat(path, out FileEntryInfo stat); + + if(err != Errno.NoError) return err; + + uint[] clusters = GetClusters((uint)stat.Inode); + + if(fileBlock >= clusters.Length) return Errno.InvalidArgument; + + deviceBlock = (long)(firstClusterSector + (clusters[fileBlock] - 1) * sectorsPerCluster); + + return Errno.NoError; } public Errno GetAttributes(string path, out FileAttributes attributes)