diff --git a/DiscImageChef.Filesystems/ISO9660/Dir.cs b/DiscImageChef.Filesystems/ISO9660/Dir.cs index 7711bce2c..c48cb9ba6 100644 --- a/DiscImageChef.Filesystems/ISO9660/Dir.cs +++ b/DiscImageChef.Filesystems/ISO9660/Dir.cs @@ -120,7 +120,7 @@ namespace DiscImageChef.Filesystems.ISO9660 Dictionary entries = new Dictionary(); int entryOff = XattrLength; - while(entryOff + DirectoryRecordSize < data.Length) + while(entryOff + Marshal.SizeOf() < data.Length) { CdiDirectoryRecord record = Marshal.ByteArrayToStructureBigEndian(data, entryOff, @@ -158,6 +158,12 @@ namespace DiscImageChef.Filesystems.ISO9660 Marshal.SizeOf(), Marshal.SizeOf()); + if(entry.CdiSystemArea.Value.attributes.HasFlag(CdiAttributes.Directory)) + { + entry.Flags |= FileFlags.Directory; + continue; + } + if(!entry.CdiSystemArea.Value.attributes.HasFlag(CdiAttributes.Directory) || !usePathTable) entries[entry.Filename] = entry;