一時ファイル ディレクトリ (%temp%) に配置する 3 つのファイルを圧縮しようとしました。それらを SevenZipSharp で圧縮すると、名前のないフォルダーを含む zip ファイルが生成されます。このフォルダー内に 3 つのファイルがありますが、ファイルを 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);
}
}