首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SevenZipSharp代码不工作--无异常引发

SevenZipSharp代码不工作--无异常引发
EN

Stack Overflow用户
提问于 2014-03-24 08:42:18
回答 1查看 921关注 0票数 0

我正在使用C#,并试图使用7z将单个文件加密到一个新的输出存档中。

我成功地加密了整个文件夹,但没有加密文件。下面是不工作的代码(即在运行代码输出目录之后,没有任何.7z文件,也没有任何异常引发!)

我的归档类如下:

代码语言:javascript
复制
class Class1
{
    public static int compressFileTo7zip(string sourceFile, string destinationFile)
    { // takes the sourceFile and encrypt it with a password as destinationFile
        //try
        //{
        //Console.WriteLine("compressFileTo7zip source File = " + sourceFile);
        SevenZipCompressor myCompressor = new SevenZipCompressor();
        myCompressor.DirectoryStructure = true;
        myCompressor.ArchiveFormat = OutArchiveFormat.SevenZip;
        SevenZipCompressor.SetLibraryPath(@"7z.dll");

        myCompressor.CompressionMethod = CompressionMethod.Lzma;
        myCompressor.EncryptHeaders = true;
        myCompressor.IncludeEmptyDirectories = true;
        myCompressor.VolumeSize = 15000000; // 15 mb segment
        myCompressor.CompressionMode = CompressionMode.Create;
        myCompressor.TempFolderPath = System.IO.Path.GetTempPath();

        string myPassword = "2Hm3m3c2RKgkCjXyw7UGqhZh2EbezNM5EV"; // yes hardcoded ,just for debugging
        // compress with password
        myCompressor.CompressFilesEncrypted(destinationFile,myPassword, sourceFile );
        //myCompressor.CompressFiles(destinationFile, sourceFile); // no output too !!
        return 1;
        //}
        //catch (SevenZipLibraryException Ex)
        //{
        //   Console.WriteLine("7zip 2nd merror message= " + Ex.Message);
        //   return -1; // an error occured ,return an indication of that
        //}



    }
}

我按一下按钮就可以这样叫它:

代码语言:javascript
复制
private void button1_Click(object sender, EventArgs e)
        {
            Class1.compressFileTo7zip(@"d:\ddd.doc", @"d:\eee.7z");
        }

文件d:\ddd.doc确实存在。

为了完整起见,我将包括用于归档目录的代码:

代码语言:javascript
复制
public static int sourceDirectoryToFirstZipFile(string sourceDirectory, string destinationZip)
{
    try
    {
        SevenZipCompressor myCompressor = new SevenZipCompressor();
        myCompressor.DirectoryStructure = true;
        myCompressor.ArchiveFormat = OutArchiveFormat.SevenZip;
        myCompressor.CompressionMethod = CompressionMethod.Lzma;
        myCompressor.EncryptHeaders = true;
        myCompressor.IncludeEmptyDirectories = true;
        SevenZipCompressor.SetLibraryPath(@"7z.dll");

        myCompressor.CompressionMode = CompressionMode.Create;
        myCompressor.TempFolderPath = System.IO.Path.GetTempPath();

        string myPassword = "j4jkds98wlef04fw8nsfvi8svd9fwemjk"; //just debugging
        // compress with password
        myCompressor.CompressDirectory(sourceDirectory, destinationZip, myPassword);
        return 1;
    }
    catch(SevenZipLibraryException Ex)
    {
        Console.WriteLine("7zip 1st merror message= " + Ex.Message);
        return -1; // an error occured ,return an indication of that
    }
} 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-24 09:09:40

当你注意到相关事件时,愿它保佑你:

代码语言:javascript
复制
myCompressor.CompressionFinished += MyCompressorOnCompressionFinished;
myCompressor.FileCompressionStarted += MyCompressorOnFileCompressionStarted;
myCompressor.Compressing += MyCompressorOnCompressing;

他们可以帮助你获得更多的信息。

希望能帮上忙。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22604541

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档