diff --git a/osu.Game/Database/LegacyExporter.cs b/osu.Game/Database/LegacyExporter.cs
index 02219c4dfa..3f305fb420 100644
--- a/osu.Game/Database/LegacyExporter.cs
+++ b/osu.Game/Database/LegacyExporter.cs
@@ -33,17 +33,17 @@ namespace osu.Game.Database
UserFileStorage = storage.GetStorageForDirectory(@"files");
}
+ protected virtual string GetItemExportString(TModel item) => item.GetDisplayString().GetValidFilename();
+
///
/// Exports an item to a legacy (.zip based) package.
///
/// The item to export.
- public virtual void Export(TModel item)
+ public void Export(TModel item)
{
- string itemFilename = item.GetDisplayString().GetValidFilename();
+ IEnumerable existingExports = exportStorage.GetFiles("", $"{GetItemExportString(item)}*{FileExtension}");
- IEnumerable existingExports = exportStorage.GetFiles("", $"{itemFilename}*{FileExtension}");
-
- string filename = NamingUtils.GetNextBestFilename(existingExports, $"{itemFilename}{FileExtension}");
+ string filename = NamingUtils.GetNextBestFilename(existingExports, $"{GetItemExportString(item)}{FileExtension}");
using (var stream = exportStorage.CreateFileSafely(filename))
ExportModelTo(item, stream);
diff --git a/osu.Game/Database/LegacyScoreExporter.cs b/osu.Game/Database/LegacyScoreExporter.cs
index fc80693765..e176449fd0 100644
--- a/osu.Game/Database/LegacyScoreExporter.cs
+++ b/osu.Game/Database/LegacyScoreExporter.cs
@@ -3,13 +3,11 @@
#nullable disable
-using System.Collections.Generic;
using System.IO;
using System.Linq;
using osu.Framework.Platform;
using osu.Game.Extensions;
using osu.Game.Scoring;
-using osu.Game.Utils;
namespace osu.Game.Database
{
@@ -17,27 +15,17 @@ namespace osu.Game.Database
{
protected override string FileExtension => ".osr";
- private readonly Storage exportStorage;
-
public LegacyScoreExporter(Storage storage)
: base(storage)
{
- exportStorage = storage.GetStorageForDirectory(@"exports");
}
- private string GetScoreExportString(ScoreInfo score) => $"{score.GetDisplayString()} ({score.Date.LocalDateTime:yyyy-MM-dd})";
-
- public override void Export(ScoreInfo score)
+ protected override string GetItemExportString(ScoreInfo score)
{
- string scoreExportTitle = GetScoreExportString(score).GetValidFilename();
-
- IEnumerable existingExports = exportStorage.GetFiles("", $"{scoreExportTitle}*{FileExtension}");
-
- string scoreExportFilename = NamingUtils.GetNextBestFilename(existingExports, $"{scoreExportTitle}{FileExtension}");
- using (var stream = exportStorage.CreateFileSafely(scoreExportFilename))
- ExportModelTo(score, stream);
-
- exportStorage.PresentFileExternally(scoreExportFilename);
+ string scoreString = score.GetDisplayString();
+ string filename = $"{scoreString} ({score.Date.LocalDateTime:yyyy-MM-dd})";
+
+ return filename.GetValidFilename();
}
public override void ExportModelTo(ScoreInfo model, Stream outputStream)