1
0
mirror of https://github.com/ppy/osu.git synced 2024-09-21 22:07:25 +08:00

Merge pull request #27586 from bdach/ignore-directory-zip-entries

Fix exports containing zero byte files after import from specific ZIP archives
This commit is contained in:
Dean Herbert 2024-03-12 17:18:39 +08:00 committed by GitHub
commit 5b2dd95fd6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 11 additions and 1 deletions

View File

@ -173,6 +173,16 @@ namespace osu.Game.Tests.Skins.IO
assertCorrectMetadata(import1, "name 1 [my custom skin 1]", "author 1", 1.0m, osu);
});
[Test]
public Task TestImportWithSubfolder() => runSkinTest(async osu =>
{
const string filename = "Archives/skin-with-subfolder-zip-entries.osk";
var import = await loadSkinIntoOsu(osu, new ImportTask(TestResources.OpenResource(filename), filename));
assertCorrectMetadata(import, $"Totally fully features skin [Real Skin with Real Features] [{filename[..^4]}]", "Unknown", 2.7m, osu);
Assert.That(import.PerformRead(r => r.Files.Count), Is.EqualTo(3));
});
#endregion
#region Cases where imports should be uniquely imported

View File

@ -46,7 +46,7 @@ namespace osu.Game.IO.Archives
archiveStream.Dispose();
}
public override IEnumerable<string> Filenames => archive.Entries.Select(e => e.Key).ExcludeSystemFileNames();
public override IEnumerable<string> Filenames => archive.Entries.Where(e => !e.IsDirectory).Select(e => e.Key).ExcludeSystemFileNames();
private class MemoryOwnerMemoryStream : Stream
{