Merge pull request #16696 from peppy/fix-migration-crash-case-sensitivity

Fix stable import not working when multiple configuration files exist with different file case
This commit is contained in:
Dan Balasescu
2022-01-31 15:52:29 +09:00
committed by GitHub

View File

@ -34,11 +34,17 @@ namespace osu.Game.IO
private string locateSongsDirectory()
{
string configFile = GetFiles(".", $"osu!.{Environment.UserName}.cfg").SingleOrDefault();
var configurationFiles = GetFiles(".", $"osu!.{Environment.UserName}.cfg");
if (configFile != null)
// GetFiles returns case insensitive results, so multiple files could exist.
// Prefer a case-correct match, but fallback to any available.
string usableConfigFile =
configurationFiles.FirstOrDefault(f => f.Contains(Environment.UserName, StringComparison.Ordinal))
?? configurationFiles.FirstOrDefault();
if (usableConfigFile != null)
{
using (var stream = GetStream(configFile))
using (var stream = GetStream(usableConfigFile))
using (var textReader = new StreamReader(stream))
{
string line;