gpt4 book ai didi

zip - 使用 Ionic Zip 将 zip 中的文件夹解压到另一个目录的根目录(不包含 zip 中包含的文件夹)

转载 作者:行者123 更新时间:2023-12-02 21:43:29 27 4
gpt4 key购买 nike

我正在尝试让 Ionic zip 将 zip 文件内的文件夹提取到指定的根目录中。我的问题是里面的zip文件是“zipfile.zip\some_folder\”。我想将“some_folder”中的所有文件提取到另一个目录根目录。

这就是我所做的

using (ZipFile zip = ZipFile.Read("zipfile.zip"))
{
var selection = (from cf in zip.Entries
where (cf.FileName).StartsWith("some_folder/")
select cf);

foreach (var cf in selection)
{
try
{
cf.Extract(destinationPath, ExtractExistingFileAction.OverwriteSilently);
progress.Value = progress.Value + 1;
}
catch (Exception ex)
{
installProblems = true;
}

}
}

上述代码的问题在于,它将自身的文件夹提取到“destinationPath\some_folder”中。我希望将“zipfile.zip\some_folder\”中的文件提取到“destinationPath\”中

希望您能帮忙!

编辑:

所以我尝试了一些东西,并想出了一些可行的东西,但我不喜欢它:

using (ZipFile zip = ZipFile.Read("zipfile.zip"))
{
var selection = (from cf in zip.Entries
where (cf.FileName).StartsWith("some_folder/")
select cf);

selection.ToList().ForEach(entry =>
{
try
{
entry.FileName = entry.FileName.Substring(12);
entry.Extract(minecraftPathVar, ExtractExistingFileAction.OverwriteSilently);
}
catch
{
installProblems = true;
}

});
}

上述方法有效,但我不认为这是一个好的做法,即使名称“some_folder”在任何时候都不会更改,我只是不喜欢这种方法..

最佳答案

在第一行之后:使用 (ZipFile zip = ZipFile.Read("zipfile.zip"))

尝试这样做:zip.FlattenFoldersOnExtract = true

关于zip - 使用 Ionic Zip 将 zip 中的文件夹解压到另一个目录的根目录(不包含 zip 中包含的文件夹),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19937016/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com