ZipFile.CreateEntryFromFile文件以扩展名存储,但希望在压缩时添加扩展名

时间:2018-04-12 21:22:29

标签: c# zipfile

我的班级目前通过

将文件添加到zip文件夹
using (var zip = ZipFile.Open(zipPath, ZipArchiveMode.Create)) {
    foreach (var filePath in files) {
        if (File.Exists(filePath.Value)) {
            zip.CreateEntryFromFile(filePath.Value, filePath.Key);
        }
    }
}

filesDictionaryValue是没有文件扩展名的文件路径,因为它们存储在没有扩展名的服务器上(假设它们都是.pdfs)

有没有办法可以将.pdf添加到文件中,因为它们存储在zip中?因此,当解压缩zip文件夹时,文件有扩展名?

注意:我的假设是,如果我只是将.pdf添加到filePath,那么在尝试CreateEntryFromFile

时,它就不会成为有效路径

1 个答案:

答案 0 :(得分:2)

鉴于CreateEntryFromFile具有文件名和条目名称的单独参数,我希望您能够修改第二个参数:

using (var zip = ZipFile.Open(zipPath, ZipArchiveMode.Create))
{
    foreach (var filePath in files)
    {
        if (File.Exists(filePath.Value))
        {
            // Note the second argument
            zip.CreateEntryFromFile(filePath.Value, filePath.Key + ".pdf");
        }
    }
}

或者,首先更改构建字典的任何代码,以在字典键中包含扩展名。 (根据您使用字典的其他内容,或者您​​是否真的需要字典,这可能适用也可能不适用。)