diff --git a/MelonLoader/Melons/MelonFolderHandler.cs b/MelonLoader/Melons/MelonFolderHandler.cs index 9174c916..a753ac54 100644 --- a/MelonLoader/Melons/MelonFolderHandler.cs +++ b/MelonLoader/Melons/MelonFolderHandler.cs @@ -99,31 +99,41 @@ private static void ProcessFolder(string path, // Get Directories var directories = Directory.GetDirectories(path, "*", SearchOption.AllDirectories); - - // Load UserLibs - foreach (var dir in directories) + if ((directories != null) && (directories.Length > 0)) { - // Skip any folders that doesn't end with or isn't equal to UserLibs - string dirName = new DirectoryInfo(dir).Name; - string dirNameLower = dirName.ToLowerInvariant(); - if (!dirNameLower.EndsWith("userlibs")) - continue; + // Load UserLibs + foreach (var dir in directories) + { + // Validate Path + if (!Directory.Exists(dir)) + continue; - // Load Assemblies - LoadFolder(dir, false, ref hasWroteLine, ref melonAssemblies); - } + // Skip any folders that doesn't end with or isn't equal to UserLibs + string dirName = new DirectoryInfo(dir).Name; + string dirNameLower = dirName.ToLowerInvariant(); + if (!dirNameLower.EndsWith("userlibs")) + continue; - // Load Melons from Extended Folders - foreach (var dir in directories) - { - // Skip any folders that ends with or is equal to Disabled - string dirName = new DirectoryInfo(dir).Name; - string dirNameLower = dirName.ToLowerInvariant(); - if (dirNameLower.EndsWith("disabled")) - continue; + // Load Assemblies + LoadFolder(dir, false, ref hasWroteLine, ref melonAssemblies); + } + + // Load Melons from Extended Folders + foreach (var dir in directories) + { + // Validate Path + if (!Directory.Exists(dir)) + continue; - // Load Assemblies - LoadFolder(dir, true, ref hasWroteLine, ref melonAssemblies); + // Skip any folders that ends with or is equal to Disabled + string dirName = new DirectoryInfo(dir).Name; + string dirNameLower = dirName.ToLowerInvariant(); + if (dirNameLower.EndsWith("disabled")) + continue; + + // Load Melons from Extended Folder + LoadFolder(dir, true, ref hasWroteLine, ref melonAssemblies); + } } // Load Melons from Base Path