From 7ffe0805c1f6a0ab0732e6514214d497f7f599d3 Mon Sep 17 00:00:00 2001 From: adelikat Date: Wed, 29 Oct 2014 21:41:01 +0000 Subject: [PATCH] When converting an IMovie to a TasMovie and auto-generating the filename, check that the file exists, and ensure a non-existent filename --- .../conversions/MovieConversionExtensions.cs | 23 ++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/BizHawk.Client.Common/movie/conversions/MovieConversionExtensions.cs b/BizHawk.Client.Common/movie/conversions/MovieConversionExtensions.cs index 049d5ddd8b..47cb510789 100644 --- a/BizHawk.Client.Common/movie/conversions/MovieConversionExtensions.cs +++ b/BizHawk.Client.Common/movie/conversions/MovieConversionExtensions.cs @@ -1,4 +1,6 @@ using System; +using System.IO; + using BizHawk.Common.ReflectionExtensions; using BizHawk.Emulation.Common; using BizHawk.Emulation.Cores.Nintendo.Gameboy; @@ -9,7 +11,26 @@ namespace BizHawk.Client.Common.MovieConversionExtensions { public static TasMovie ToTasMovie(this IMovie old) { - var newFilename = old.Filename + "." + TasMovie.Extension; + string newFilename = old.Filename + "." + TasMovie.Extension; + + if (File.Exists(newFilename)) + { + int fileNum = 1; + bool fileConflict = true; + while (fileConflict) + { + if (File.Exists(newFilename)) + { + newFilename = old.Filename + " (" + fileNum + ")" + "." + TasMovie.Extension; + fileNum++; + } + else + { + fileConflict = false; + } + } + } + var tas = new TasMovie(newFilename, old.StartsFromSavestate); for (var i = 0; i < old.InputLogLength; i++)