C# ZipFile:仅压缩文件夹的内容
C# ZipFile: zip only the contents of a folder
我正在使用 ZipFile.CreateFromDirectory 方法在 C# 中压缩一个目录:
private void createZIP()
{
string startPath = @"c:\example\start";
string zipPath = @"c:\example\result.zip";
ZipFile.CreateFromDirectory(startPath, zipPath, CompressionLevel.Fastest, true);
}
它工作正常,但我只想要 zip 文件中 /start/ 文件夹的内容,而不是目录本身。
现在:
result.zip
--start
---- file1.txt
---- file2.txt
我想要什么:
result.zip
-- file1.txt
-- file2.txt
我怎样才能做到这一点?
ZIPFile.CreateFromDirectory
的最后一个参数,您为其传递值 true,确定目录本身是否应作为 ZIP 的根包含。如果您将其更改为 false,它应该可以如您所愿地工作。
ZipFile.CreateFromDirectory(startPath, zipPath, CompressionLevel.Fastest, false);
如果您想将功能从简单的压缩扩展到有条件的压缩
使用以下 link 部分[从现有 Zip 文件添加或删除文件]
Creating-Zip-Files-Easily-in-NET
并创建空目录使用以下 link
creating-directories-in-a-ziparchive-c-sharp-net-4-5
我正在使用 ZipFile.CreateFromDirectory 方法在 C# 中压缩一个目录:
private void createZIP()
{
string startPath = @"c:\example\start";
string zipPath = @"c:\example\result.zip";
ZipFile.CreateFromDirectory(startPath, zipPath, CompressionLevel.Fastest, true);
}
它工作正常,但我只想要 zip 文件中 /start/ 文件夹的内容,而不是目录本身。
现在:
result.zip
--start
---- file1.txt
---- file2.txt
我想要什么:
result.zip
-- file1.txt
-- file2.txt
我怎样才能做到这一点?
ZIPFile.CreateFromDirectory
的最后一个参数,您为其传递值 true,确定目录本身是否应作为 ZIP 的根包含。如果您将其更改为 false,它应该可以如您所愿地工作。
ZipFile.CreateFromDirectory(startPath, zipPath, CompressionLevel.Fastest, false);
如果您想将功能从简单的压缩扩展到有条件的压缩
使用以下 link 部分[从现有 Zip 文件添加或删除文件]
Creating-Zip-Files-Easily-in-NET
并创建空目录使用以下 link
creating-directories-in-a-ziparchive-c-sharp-net-4-5