From cbd362cef13fdd11e8f1afc2eb3383e13f8ddb5d Mon Sep 17 00:00:00 2001 From: Aaron Junker Date: Thu, 14 Apr 2022 16:11:51 +0200 Subject: [PATCH] [DeveloperPreview]Fix case issue and file in use issue (#17732) --- .../previewpane/MonacoPreviewHandler/FileHandler.cs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/modules/previewpane/MonacoPreviewHandler/FileHandler.cs b/src/modules/previewpane/MonacoPreviewHandler/FileHandler.cs index b51e4f680d..b9522571f8 100644 --- a/src/modules/previewpane/MonacoPreviewHandler/FileHandler.cs +++ b/src/modules/previewpane/MonacoPreviewHandler/FileHandler.cs @@ -3,6 +3,7 @@ // See the LICENSE file in the project root for more information. using System; +using System.Globalization; using System.IO; using System.Linq; using System.Text.Json; @@ -18,9 +19,16 @@ namespace Microsoft.PowerToys.PreviewHandler.Monaco /// The monaco language id public static string GetLanguage(string fileExtension) { + fileExtension = fileExtension.ToLower(CultureInfo.CurrentCulture); try { - JsonDocument languageListDocument = JsonDocument.Parse(File.ReadAllText(Settings.AssemblyDirectory + "\\monaco_languages.json")); + JsonDocument languageListDocument; + using (StreamReader jsonFileReader = new StreamReader(new FileStream(Settings.AssemblyDirectory + "\\monaco_languages.json", FileMode.Open, FileAccess.Read, FileShare.ReadWrite))) + { + languageListDocument = JsonDocument.Parse(jsonFileReader.ReadToEnd()); + jsonFileReader.Close(); + } + JsonElement languageList = languageListDocument.RootElement.GetProperty("list"); foreach (JsonElement e in languageList.EnumerateArray()) {