Skip to content

Commit

Permalink
Merge pull request #614 from adamhathcock/ensure-dest-dir-exists
Browse files Browse the repository at this point in the history
Ensure destination directory exists.
  • Loading branch information
adamhathcock committed Sep 12, 2021
2 parents 7bd9711 + 0209d00 commit ea5c8dc
Show file tree
Hide file tree
Showing 6 changed files with 21 additions and 9 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/dotnetcore.yml
Expand Up @@ -12,7 +12,7 @@ jobs:
- uses: actions/checkout@v1
- uses: actions/setup-dotnet@v1
with:
dotnet-version: 5.0.300
dotnet-version: 5.0.400
- run: dotnet run -p build/build.csproj
- uses: actions/upload-artifact@v2
with:
Expand Down
2 changes: 1 addition & 1 deletion build/build.csproj
Expand Up @@ -6,7 +6,7 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Bullseye" Version="3.7.0" />
<PackageReference Include="Bullseye" Version="3.8.0" />
<PackageReference Include="Glob" Version="1.1.8" />
<PackageReference Include="SimpleExec" Version="7.0.0" />
</ItemGroup>
Expand Down
3 changes: 2 additions & 1 deletion global.json
@@ -1,5 +1,6 @@
{
"sdk": {
"version": "5.0.300"
"version": "5.0.300",
"rollForward": "latestFeature"
}
}
13 changes: 12 additions & 1 deletion src/SharpCompress/Common/ExtractionMethods.cs
Expand Up @@ -14,14 +14,25 @@ internal static class ExtractionMethods
Action<string, ExtractionOptions?> write)
{
string destinationFileName;
string file = Path.GetFileName(entry.Key);
string fullDestinationDirectoryPath = Path.GetFullPath(destinationDirectory);

//check for trailing slash.
if (fullDestinationDirectoryPath[fullDestinationDirectoryPath.Length - 1] != Path.DirectorySeparatorChar)
{
fullDestinationDirectoryPath += Path.DirectorySeparatorChar;
}

if (!Directory.Exists(fullDestinationDirectoryPath))
{
throw new ExtractionException($"Directory does not exist to extract to: {fullDestinationDirectoryPath}");
}

options ??= new ExtractionOptions()
{
Overwrite = true
};

string file = Path.GetFileName(entry.Key);
if (options.ExtractFullPath)
{
string folder = Path.GetDirectoryName(entry.Key)!;
Expand Down
8 changes: 4 additions & 4 deletions src/SharpCompress/SharpCompress.csproj
Expand Up @@ -2,9 +2,9 @@
<PropertyGroup>
<AssemblyTitle>SharpCompress - Pure C# Decompression/Compression</AssemblyTitle>
<NeutralLanguage>en-US</NeutralLanguage>
<VersionPrefix>0.28.3</VersionPrefix>
<AssemblyVersion>0.28.3</AssemblyVersion>
<FileVersion>0.28.3</FileVersion>
<VersionPrefix>0.29.0</VersionPrefix>
<AssemblyVersion>0.29.0</AssemblyVersion>
<FileVersion>0.29.0</FileVersion>
<Authors>Adam Hathcock</Authors>
<TargetFrameworks>netstandard2.0;netstandard2.1;netcoreapp3.1;net5.0</TargetFrameworks>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
Expand All @@ -18,7 +18,7 @@
<PackageLicense>https://github.com/adamhathcock/sharpcompress/blob/master/LICENSE.txt</PackageLicense>
<GenerateAssemblyTitleAttribute>false</GenerateAssemblyTitleAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
<Description>SharpCompress is a compression library for NET Standard 2.0/2.1//NET 4.6 that can unrar, decompress 7zip, decompress xz, zip/unzip, tar/untar lzip/unlzip, bzip2/unbzip2 and gzip/ungzip with forward-only reading and file random access APIs. Write support for zip/tar/bzip2/gzip is implemented.</Description>
<Description>SharpCompress is a compression library for NET Standard 2.0/2.1/NET 5.0 that can unrar, decompress 7zip, decompress xz, zip/unzip, tar/untar lzip/unlzip, bzip2/unbzip2 and gzip/ungzip with forward-only reading and file random access APIs. Write support for zip/tar/bzip2/gzip is implemented.</Description>
<LangVersion>9</LangVersion>
<Nullable>enable</Nullable>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
Expand Down
2 changes: 1 addition & 1 deletion tests/SharpCompress.Test/SharpCompress.Test.csproj
Expand Up @@ -12,7 +12,7 @@
<ProjectReference Include="..\..\src\SharpCompress\SharpCompress.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.10.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.11.0" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.3">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
Expand Down

0 comments on commit ea5c8dc

Please sign in to comment.