Fast checking for file existance
This commit is contained in:
@@ -36,5 +36,10 @@ namespace OpenRA.FileFormats
|
|||||||
}
|
}
|
||||||
|
|
||||||
public IEnumerable<uint> AllFileHashes() { return hashes; }
|
public IEnumerable<uint> AllFileHashes() { return hashes; }
|
||||||
|
|
||||||
|
public bool Exists(string filename)
|
||||||
|
{
|
||||||
|
return hashes.Contains(PackageEntry.HashFilename(filename));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -122,15 +122,8 @@ namespace OpenRA.FileFormats
|
|||||||
public static bool Exists(string filename)
|
public static bool Exists(string filename)
|
||||||
{
|
{
|
||||||
foreach (var folder in mountedFolders)
|
foreach (var folder in mountedFolders)
|
||||||
{
|
if (folder.Exists(filename))
|
||||||
var s = folder.GetContent(filename);
|
|
||||||
if (s != null)
|
|
||||||
{
|
|
||||||
s.Dispose();
|
|
||||||
return true;
|
return true;
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -30,5 +30,10 @@ namespace OpenRA.FileFormats
|
|||||||
foreach( var filename in Directory.GetFiles( path, "*", SearchOption.TopDirectoryOnly ) )
|
foreach( var filename in Directory.GetFiles( path, "*", SearchOption.TopDirectoryOnly ) )
|
||||||
yield return PackageEntry.HashFilename( filename );
|
yield return PackageEntry.HashFilename( filename );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public bool Exists(string filename)
|
||||||
|
{
|
||||||
|
return File.Exists(Path.Combine(path,filename));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ namespace OpenRA.FileFormats
|
|||||||
public interface IFolder
|
public interface IFolder
|
||||||
{
|
{
|
||||||
Stream GetContent(string filename);
|
Stream GetContent(string filename);
|
||||||
|
bool Exists(string filename);
|
||||||
IEnumerable<uint> AllFileHashes();
|
IEnumerable<uint> AllFileHashes();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -143,6 +144,11 @@ namespace OpenRA.FileFormats
|
|||||||
{
|
{
|
||||||
return index.Keys;
|
return index.Keys;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public bool Exists(string filename)
|
||||||
|
{
|
||||||
|
return index.ContainsKey(PackageEntry.HashFilename(filename));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[Flags]
|
[Flags]
|
||||||
|
|||||||
Reference in New Issue
Block a user