Take in account CD-i directory flag is in a separate place.

This commit is contained in:
2019-07-31 17:44:34 +01:00
parent 0cb39ad481
commit c9bbf22e18

View File

@@ -120,7 +120,7 @@ namespace DiscImageChef.Filesystems.ISO9660
Dictionary<string, DecodedDirectoryEntry> entries = new Dictionary<string, DecodedDirectoryEntry>();
int entryOff = XattrLength;
while(entryOff + DirectoryRecordSize < data.Length)
while(entryOff + Marshal.SizeOf<CdiDirectoryRecord>() < data.Length)
{
CdiDirectoryRecord record =
Marshal.ByteArrayToStructureBigEndian<CdiDirectoryRecord>(data, entryOff,
@@ -158,6 +158,12 @@ namespace DiscImageChef.Filesystems.ISO9660
Marshal.SizeOf<CdiDirectoryRecord>(),
Marshal.SizeOf<CdiSystemArea>());
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;