mirror of
https://github.com/aaru-dps/Aaru.git
synced 2025-12-16 19:24:25 +00:00
[Apple DOS filesystem] Fix file sizes.
This commit is contained in:
@@ -82,7 +82,6 @@ public sealed partial class AppleDOS
|
|||||||
_totalFileEntries = 0;
|
_totalFileEntries = 0;
|
||||||
_catalogCache = new Dictionary<string, ushort>();
|
_catalogCache = new Dictionary<string, ushort>();
|
||||||
_fileTypeCache = new Dictionary<string, byte>();
|
_fileTypeCache = new Dictionary<string, byte>();
|
||||||
_fileSizeCache = new Dictionary<string, int>();
|
|
||||||
_lockedFiles = new List<string>();
|
_lockedFiles = new List<string>();
|
||||||
|
|
||||||
if(lba == 0 ||
|
if(lba == 0 ||
|
||||||
@@ -125,9 +124,6 @@ public sealed partial class AppleDOS
|
|||||||
if(!_fileTypeCache.ContainsKey(filename))
|
if(!_fileTypeCache.ContainsKey(filename))
|
||||||
_fileTypeCache.Add(filename, (byte)(entry.typeAndFlags & 0x7F));
|
_fileTypeCache.Add(filename, (byte)(entry.typeAndFlags & 0x7F));
|
||||||
|
|
||||||
if(!_fileSizeCache.ContainsKey(filename))
|
|
||||||
_fileSizeCache.Add(filename, entry.length * _vtoc.bytesPerSector);
|
|
||||||
|
|
||||||
if((entry.typeAndFlags & 0x80) == 0x80 &&
|
if((entry.typeAndFlags & 0x80) == 0x80 &&
|
||||||
!_lockedFiles.Contains(filename))
|
!_lockedFiles.Contains(filename))
|
||||||
_lockedFiles.Add(filename);
|
_lockedFiles.Add(filename);
|
||||||
|
|||||||
@@ -337,8 +337,12 @@ public sealed partial class AppleDOS
|
|||||||
if(_extentCache.ContainsKey(filename))
|
if(_extentCache.ContainsKey(filename))
|
||||||
_extentCache.Remove(filename);
|
_extentCache.Remove(filename);
|
||||||
|
|
||||||
|
if(_fileSizeCache.ContainsKey(filename))
|
||||||
|
_fileSizeCache.Remove(filename);
|
||||||
|
|
||||||
_fileCache.Add(filename, fileMs.ToArray());
|
_fileCache.Add(filename, fileMs.ToArray());
|
||||||
_extentCache.Add(filename, tsListMs.ToArray());
|
_extentCache.Add(filename, tsListMs.ToArray());
|
||||||
|
_fileSizeCache.Add(filename, (int)fileMs.Length);
|
||||||
|
|
||||||
return ErrorNumber.NoError;
|
return ErrorNumber.NoError;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -94,6 +94,8 @@ public sealed partial class AppleDOS
|
|||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_fileSizeCache = new Dictionary<string, int>();
|
||||||
|
|
||||||
error = CacheAllFiles();
|
error = CacheAllFiles();
|
||||||
|
|
||||||
if(error != ErrorNumber.NoError)
|
if(error != ErrorNumber.NoError)
|
||||||
|
|||||||
Reference in New Issue
Block a user