/// <summary> /// Get a Deserialized object of the json settings string. /// </summary> /// <returns>Deserialized json settings object.</returns> public T GetSettings <T>(string powertoy = DefaultModuleName, string fileName = DefaultFileName) { // Adding Trim('\0') to overcome possible NTFS file corruption. // Look at issue https://github.com/microsoft/PowerToys/issues/6413 you'll see the file has a large sum of \0 to fill up a 4096 byte buffer for writing to disk // This, while not totally ideal, does work around the problem by trimming the end. // The file itself did write the content correctly but something is off with the actual end of the file, hence the 0x00 bug var jsonSettingsString = _ioProvider.ReadAllText(GetSettingsPath(powertoy, fileName)).Trim('\0'); return(JsonSerializer.Deserialize <T>(jsonSettingsString)); }