Skip to content

Commit 5749ff0

Browse files
authored
feat(IZipArchiveService): auto create zip folder (#4469)
* feat: 增加文件夹自动创建功能 * test: 增加单元测试 * chore: bump version 8.10.3
1 parent c31b481 commit 5749ff0

File tree

3 files changed

+15
-6
lines changed

3 files changed

+15
-6
lines changed

src/BootstrapBlazor/BootstrapBlazor.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk.Razor">
22

33
<PropertyGroup>
4-
<Version>8.10.3-beta03</Version>
4+
<Version>8.10.3</Version>
55
</PropertyGroup>
66

77
<ItemGroup>

src/BootstrapBlazor/Services/DefaultZipArchiveService.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,11 @@ public async Task ArchiveDirectory(string archiveFileName, string directoryName,
7171
{
7272
if (Directory.Exists(directoryName))
7373
{
74+
var folder = Path.GetDirectoryName(archiveFileName);
75+
if (!string.IsNullOrEmpty(folder) && !Directory.Exists(folder))
76+
{
77+
Directory.CreateDirectory(folder);
78+
}
7479
await Task.Run(() => ZipFile.CreateFromDirectory(directoryName, archiveFileName, compressionLevel, includeBaseDirectory, encoding));
7580
}
7681
}

test/UnitTest/Services/ZipArchiveServiceTest.cs

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -50,17 +50,21 @@ public async Task Archive_Ok()
5050
archService.ExtractToDirectory(archiveFile, destFolder);
5151
Assert.True(Directory.Exists(destFolder));
5252

53-
// 打包文件夹
54-
//stream = await archService.ArchiveDirectory(destFolder);
55-
//Assert.NotNull(stream);
56-
57-
var destFile = Path.Combine(root, "folder.zip");
53+
// 打包文件夹单元测试
54+
var tempFolder = Path.Combine(root, "test_temp");
55+
if (Directory.Exists(tempFolder))
56+
{
57+
Directory.Delete(tempFolder, true);
58+
}
59+
var destFile = Path.Combine(tempFolder, "folder.zip");
5860
if (File.Exists(destFile))
5961
{
6062
File.Delete(destFile);
6163
}
6264
await archService.ArchiveDirectory(destFile, destFolder, includeBaseDirectory: true);
6365
Assert.True(File.Exists(destFile));
6466
File.Delete(destFile);
67+
68+
await Assert.ThrowsAsync<ArgumentNullException>(() => archService.ArchiveDirectory(null!, destFolder, includeBaseDirectory: true));
6569
}
6670
}

0 commit comments

Comments
 (0)