From edecab7416b15c013762b9cfa3ec5023157b8275 Mon Sep 17 00:00:00 2001 From: AlexanderZemlyak <92867056+AlexanderZemlyak@users.noreply.github.com> Date: Fri, 22 Mar 2024 23:25:02 +0300 Subject: [PATCH] Add check for LanguageKits directory existence (#3052) * Add check for LanguageKits directory existence * Fix the check --- LanguageIntegrator/LanguageIntegrator.cs | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/LanguageIntegrator/LanguageIntegrator.cs b/LanguageIntegrator/LanguageIntegrator.cs index bd77009b3..eca1b5c6c 100644 --- a/LanguageIntegrator/LanguageIntegrator.cs +++ b/LanguageIntegrator/LanguageIntegrator.cs @@ -17,14 +17,17 @@ namespace LanguageIntegration private const string languageKitsDirectoryName = "LanguageKits"; /// - /// Возвращает директорию, содержащую комплекты языков + /// Возвращает директорию, содержащую комплекты языков (если ее нет, то вернется null) /// private static DirectoryInfo GetLanguageKitsDirectory() { string binDirectoryPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); string languageKitsDirectoryPath = Path.Combine(binDirectoryPath, languageKitsDirectoryName); - return new DirectoryInfo(languageKitsDirectoryPath); + if (Directory.Exists(languageKitsDirectoryPath)) + return new DirectoryInfo(languageKitsDirectoryPath); + + return null; } /// @@ -34,6 +37,9 @@ namespace LanguageIntegration { DirectoryInfo languageKitsDirectory = GetLanguageKitsDirectory(); + if (languageKitsDirectory == null) + return; + foreach (var languageKit in languageKitsDirectory.GetDirectories()) { FileInfo[] dllFiles = languageKit.GetFiles(); @@ -75,6 +81,9 @@ namespace LanguageIntegration { DirectoryInfo languageKitsDirectory = GetLanguageKitsDirectory(); + if (languageKitsDirectory == null) + return; + foreach (var parserDll in languageKitsDirectory.GetDirectories() .SelectMany(directory => directory.GetFiles("*Parser.dll"))) {