diff --git a/CHANGELIST.md b/CHANGELIST.md index 09ea087f..0735b626 100644 --- a/CHANGELIST.md +++ b/CHANGELIST.md @@ -63,6 +63,7 @@ - Add and use CustomOutputFile - Fix access permissions of output file classes - Handle XGD required files +- Forgot to assume directories don't exist ### 3.2.1 (2024-08-05) diff --git a/MPF.Processors/CustomOutputFile.cs b/MPF.Processors/CustomOutputFile.cs index d1074188..ee6a0e07 100644 --- a/MPF.Processors/CustomOutputFile.cs +++ b/MPF.Processors/CustomOutputFile.cs @@ -58,6 +58,12 @@ namespace MPF.Processors /// Base directory to check in public override bool Exists(string baseDirectory) { + // If the base directory is invalid + if (string.IsNullOrEmpty(baseDirectory)) + return false; + if (!Directory.Exists(baseDirectory)) + return false; + foreach (string filename in Filenames) { // Check for invalid filenames diff --git a/MPF.Processors/OutputFile.cs b/MPF.Processors/OutputFile.cs index 969eaf3f..9986846b 100644 --- a/MPF.Processors/OutputFile.cs +++ b/MPF.Processors/OutputFile.cs @@ -195,6 +195,12 @@ namespace MPF.Processors /// Base directory to check in public virtual bool Exists(string baseDirectory) { + // If the base directory is invalid + if (string.IsNullOrEmpty(baseDirectory)) + return false; + if (!Directory.Exists(baseDirectory)) + return false; + foreach (string filename in Filenames) { // Check for invalid filenames diff --git a/MPF.Processors/RegexOutputFile.cs b/MPF.Processors/RegexOutputFile.cs index e54d3ce5..68817dcf 100644 --- a/MPF.Processors/RegexOutputFile.cs +++ b/MPF.Processors/RegexOutputFile.cs @@ -47,6 +47,12 @@ namespace MPF.Processors /// public override bool Exists(string baseDirectory) { + // If the base directory is invalid + if (string.IsNullOrEmpty(baseDirectory)) + return false; + if (!Directory.Exists(baseDirectory)) + return false; + // Get list of all files in directory var directoryFiles = Directory.GetFiles(baseDirectory); foreach (string file in directoryFiles)