Fail properly when ext. tools dir is missing (fixes #2787 for real)

This commit is contained in:
YoshiRulz 2021-06-11 02:09:16 +10:00
parent 07fd664485
commit 93ca66a243
No known key found for this signature in database
GPG Key ID: C4DE31C245353FB7
1 changed files with 15 additions and 16 deletions

View File

@ -35,29 +35,28 @@ namespace BizHawk.Client.EmuHawk
DirectoryMonitor.Created -= DirectoryMonitor_Created; DirectoryMonitor.Created -= DirectoryMonitor_Created;
DirectoryMonitor.Dispose(); DirectoryMonitor.Dispose();
} }
DirectoryMonitor = new FileSystemWatcher(_paths["Global", "External Tools"].Path, "*.dll") var path = _paths["Global", "External Tools"].Path;
if (Directory.Exists(path))
{ {
IncludeSubdirectories = false, DirectoryMonitor = new FileSystemWatcher(path, "*.dll")
NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite | NotifyFilters.FileName, {
Filter = "*.dll" IncludeSubdirectories = false,
}; NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite | NotifyFilters.FileName,
DirectoryMonitor.Created += DirectoryMonitor_Created; Filter = "*.dll"
DirectoryMonitor.EnableRaisingEvents = true; };
DirectoryMonitor.Created += DirectoryMonitor_Created;
DirectoryMonitor.EnableRaisingEvents = true;
}
BuildToolStrip(); BuildToolStrip();
} }
internal void BuildToolStrip() internal void BuildToolStrip()
{ {
MenuItems.Clear(); MenuItems.Clear();
if (Directory.Exists(DirectoryMonitor.Path)) if (DirectoryMonitor == null) return;
{ DirectoryInfo di = new(DirectoryMonitor.Path);
DirectoryInfo dInfo = new DirectoryInfo(DirectoryMonitor.Path); if (!di.Exists) return;
foreach (var fi in di.GetFiles("*.dll")) MenuItems.Add(GenerateToolTipFromFileName(fi.FullName));
foreach (FileInfo fi in dInfo.GetFiles("*.dll"))
{
MenuItems.Add(GenerateToolTipFromFileName(fi.FullName));
}
}
} }
/// <summary>Generates a <see cref="ToolStripMenuItem"/> from an assembly at <paramref name="fileName"/> containing an external tool.</summary> /// <summary>Generates a <see cref="ToolStripMenuItem"/> from an assembly at <paramref name="fileName"/> containing an external tool.</summary>