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)