Merge pull request #12693 from abcdefg30/invalidContains

Give a proper error when a file is not found
This commit is contained in:
reaperrr
2017-02-27 19:55:57 +01:00
committed by GitHub
2 changed files with 9 additions and 2 deletions

View File

@@ -267,9 +267,15 @@ namespace OpenRA.FileSystem
if (s != null)
return true;
// The file should be in an explicit package (but we couldn't find it)
// Thus don't try to find it using the filename (which contains the invalid '|' char)
// This can be removed once the TODO below is resolved
if (explicitSplit > 0)
return false;
// Ask each package individually
// TODO: This fallback can be removed once the filesystem cleanups are complete
var package = mountedPackages.Keys.LastOrDefault(x => x.Contains(filename));
var package = mountedPackages.Keys.LastOrDefault(x => x.Contains(filename));
if (package != null)
{
s = package.GetStream(filename);

View File

@@ -9,6 +9,7 @@
*/
#endregion
using System;
using System.Collections.Generic;
using System.IO;
@@ -47,7 +48,7 @@ namespace OpenRA.FileSystem
public bool Contains(string filename)
{
var combined = Path.Combine(path, filename);
return combined.StartsWith(path) && File.Exists(combined);
return combined.StartsWith(path, StringComparison.Ordinal) && File.Exists(combined);
}
public void Update(string filename, byte[] contents)