[Symbian Installation File] Shown text files or installed subcomponents do not have a destination name, use their source name instead.

This commit is contained in:
2023-10-07 16:34:02 +01:00
parent 272338e661
commit a6acee88d8

View File

@@ -84,9 +84,15 @@ public sealed partial class Symbian
buffer = br.ReadBytes((int)simpleFileRecord.record.sourceNameLen); buffer = br.ReadBytes((int)simpleFileRecord.record.sourceNameLen);
decodedFileRecord.sourceName = _encoding.GetString(buffer); decodedFileRecord.sourceName = _encoding.GetString(buffer);
br.BaseStream.Seek(simpleFileRecord.record.destinationNamePtr, SeekOrigin.Begin); // Files that are not written to disk but shown or installed components do not have a destination name.
buffer = br.ReadBytes((int)simpleFileRecord.record.destinationNameLen); if(simpleFileRecord.record.destinationNameLen > 0)
decodedFileRecord.destinationName = _encoding.GetString(buffer); {
br.BaseStream.Seek(simpleFileRecord.record.destinationNamePtr, SeekOrigin.Begin);
buffer = br.ReadBytes((int)simpleFileRecord.record.destinationNameLen);
decodedFileRecord.destinationName = _encoding.GetString(buffer);
}
else
decodedFileRecord.destinationName = decodedFileRecord.sourceName;
if(_release6) if(_release6)
{ {
@@ -136,10 +142,17 @@ public sealed partial class Symbian
br.BaseStream.Seek(multipleFileRecord.record.sourceNamePtr, SeekOrigin.Begin); br.BaseStream.Seek(multipleFileRecord.record.sourceNamePtr, SeekOrigin.Begin);
buffer = br.ReadBytes((int)multipleFileRecord.record.sourceNameLen); buffer = br.ReadBytes((int)multipleFileRecord.record.sourceNameLen);
string sourceName = _encoding.GetString(buffer); string sourceName = _encoding.GetString(buffer);
string destinationName;
br.BaseStream.Seek(multipleFileRecord.record.destinationNamePtr, SeekOrigin.Begin); // Files that are not written to disk but shown or installed components do not have a destination name.
buffer = br.ReadBytes((int)multipleFileRecord.record.destinationNameLen); if(multipleFileRecord.record.destinationNameLen > 0)
string destinationName = _encoding.GetString(buffer); {
br.BaseStream.Seek(multipleFileRecord.record.destinationNamePtr, SeekOrigin.Begin);
buffer = br.ReadBytes((int)multipleFileRecord.record.destinationNameLen);
destinationName = _encoding.GetString(buffer);
}
else
destinationName = sourceName;
string mimeType = null; string mimeType = null;