[Apple DOS filesystem] Fix file sizes.

This commit is contained in:
2022-12-19 10:45:07 +00:00
parent 0f1876ef64
commit 66509e4e2f
3 changed files with 6 additions and 4 deletions

View File

@@ -82,7 +82,6 @@ public sealed partial class AppleDOS
_totalFileEntries = 0;
_catalogCache = new Dictionary<string, ushort>();
_fileTypeCache = new Dictionary<string, byte>();
_fileSizeCache = new Dictionary<string, int>();
_lockedFiles = new List<string>();
if(lba == 0 ||
@@ -125,9 +124,6 @@ public sealed partial class AppleDOS
if(!_fileTypeCache.ContainsKey(filename))
_fileTypeCache.Add(filename, (byte)(entry.typeAndFlags & 0x7F));
if(!_fileSizeCache.ContainsKey(filename))
_fileSizeCache.Add(filename, entry.length * _vtoc.bytesPerSector);
if((entry.typeAndFlags & 0x80) == 0x80 &&
!_lockedFiles.Contains(filename))
_lockedFiles.Add(filename);

View File

@@ -337,8 +337,12 @@ public sealed partial class AppleDOS
if(_extentCache.ContainsKey(filename))
_extentCache.Remove(filename);
if(_fileSizeCache.ContainsKey(filename))
_fileSizeCache.Remove(filename);
_fileCache.Add(filename, fileMs.ToArray());
_extentCache.Add(filename, tsListMs.ToArray());
_fileSizeCache.Add(filename, (int)fileMs.Length);
return ErrorNumber.NoError;
}

View File

@@ -94,6 +94,8 @@ public sealed partial class AppleDOS
return error;
}
_fileSizeCache = new Dictionary<string, int>();
error = CacheAllFiles();
if(error != ErrorNumber.NoError)