SquidBox SevenZipSharp在创建zip时创建未命名的文件夹

问题描述 投票:0回答:1

我尝试压缩放置在我的临时文件目录(%temp%)中的三个文件。当用SevenZipSharp压缩它们时,我得到一个带有未命名文件夹的zip文件。在此文件夹中,我有三个文件,但我需要将这些文件放在目录的根目录中。压缩。我在这里想念的是什么,我做错了什么?

public void ZipFiles(String[] files, String absoluteDestination)
{
    List<String> createdFiles = HandleFileIgnore(files);

    System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.GetCultureInfo("de-DE");
    SevenZipCompressor compressor = new SevenZipCompressor(m_TempPath);
    compressor.ArchiveFormat = m_outArchiveFormat; //OutArchiveFormat.Zip
    compressor.PreserveDirectoryRoot = true; //False doesn't solve the problem
    compressor.Compressing += CompressingProgressChanged;
    int commonrootlenght = FindCommonRoot(files, m_CommonRootFolder); //if no commonRootFolder is set it will return -1
    CompressFilesFromRoot(files, absoluteDestination, compressor, commonrootlenght);
    RemoveCreatedFiles(createdFiles);
}

private static void CompressFilesFromRoot(String[] files, String absoluteDestination, SevenZipCompressor compressor, int commonrootlenght)
{
    if (commonrootlenght < 0)
    {
        compressor.CompressFiles(absoluteDestination, files);
    }
    else
    {
        compressor.CompressFiles(absoluteDestination, commonrootlenght, files);
    }
}

enter image description here

c# 7zip sevenzipsharp
1个回答
0
投票

似乎SevenZipSharp无法处理8.3文件路径。我的文件夹名称是

C:\ Users \ XKC-ML〜1 \ AppData \ Local \ Temp \ ApplicationFolder

我只是用过

archivePath = Path.GetFullPath(archivePath);

这就是窍门。

© www.soinside.com 2019 - 2024. All rights reserved.