Speed up FileSystem

This commit is contained in:
Paul Chote
2010-08-18 23:40:05 +12:00
parent 30ab5c33ea
commit 66359b7058

View File

@@ -67,11 +67,8 @@ namespace OpenRA.FileFormats
static Stream GetFromCache( Cache<uint, List<IFolder>> index, string filename ) static Stream GetFromCache( Cache<uint, List<IFolder>> index, string filename )
{ {
foreach( var folder in index[ PackageEntry.HashFilename( filename ) ] ) foreach( var folder in index[ PackageEntry.HashFilename( filename ) ] )
{ if (folder.Exists(filename))
Stream s = folder.GetContent(filename); return folder.GetContent(filename);
if( s != null )
return s;
}
return null; return null;
} }
@@ -86,9 +83,8 @@ namespace OpenRA.FileFormats
foreach( IFolder folder in mountedFolders ) foreach( IFolder folder in mountedFolders )
{ {
Stream s = folder.GetContent(filename); if (folder.Exists(filename))
if( s != null ) return folder.GetContent(filename);
return s;
} }
throw new FileNotFoundException( string.Format( "File not found: {0}", filename ), filename ); throw new FileNotFoundException( string.Format( "File not found: {0}", filename ), filename );
@@ -109,11 +105,8 @@ namespace OpenRA.FileFormats
foreach( var ext in exts ) foreach( var ext in exts )
{ {
foreach( IFolder folder in mountedFolders ) foreach( IFolder folder in mountedFolders )
{ if (folder.Exists(filename + ext))
Stream s = folder.GetContent( filename + ext ); return folder.GetContent( filename + ext );
if( s != null )
return s;
}
} }
throw new FileNotFoundException( string.Format( "File not found: {0}", filename ), filename ); throw new FileNotFoundException( string.Format( "File not found: {0}", filename ), filename );