More robust replay file creation

This commit is contained in:
Scott_NZ
2013-04-24 01:39:59 +12:00
parent 0c7b552471
commit cded77c176

View File

@@ -39,18 +39,21 @@ namespace OpenRA.Network
if (!Directory.Exists(replaysDirectory)) if (!Directory.Exists(replaysDirectory))
Directory.CreateDirectory(replaysDirectory); Directory.CreateDirectory(replaysDirectory);
string fullFilename; FileStream file = null;
var id = -1; var id = -1;
do while (file == null)
{ {
fullFilename = Path.Combine(replaysDirectory, id < 0 var fullFilename = Path.Combine(replaysDirectory, id < 0
? "{0}.rep".F(filename) ? "{0}.rep".F(filename)
: "{0}-{1}.rep".F(filename, id)); : "{0}-{1}.rep".F(filename, id));
id++; id++;
try
{
file = File.Create(fullFilename);
}
catch (IOException) { }
} }
while (File.Exists(fullFilename));
var file = File.Create(fullFilename);
file.Write(initialContent); file.Write(initialContent);
this.writer = new BinaryWriter(file); this.writer = new BinaryWriter(file);
} }