.net文件加密压缩与解密功能        有例子最好    邮箱[email protected]

解决方案 »

  1.   

    http://tech.ddvip.com/2008-11/122595762589688.html
      

  2.   

    上网下载一个 ICSharpCode.SharpZipLib.dll
    /// <summary>
    /// 打包文件
    /// </summary>
    /// <param name="filenames">要打包的文件列表</param>
    /// <param name="GzipFileName">目标文件名</param>
    /// <param name="CompressionLevel">压缩品质级别(0~9)</param>
    /// <param name="SleepTimer">休眠时间(单位毫秒)</param>
    public static void DoZip( List<FileInfo> filenames, string GzipFileName, int CompressionLevel, int SleepTimer )
    { ZipOutputStream s = new ZipOutputStream( File.Create( GzipFileName ) );
    try
    {
    s.SetLevel( CompressionLevel );   //0 - store only to 9 - means best compression foreach ( FileInfo file in filenames )
    {
    FileStream fs = null;
    try
    {
    fs = file.Open( FileMode.Open, FileAccess.ReadWrite );
    }
    catch
    { continue; } byte[] buffer = new byte[fs.Length];
    fs.Read( buffer, 0, buffer.Length ); ZipEntry entry = new ZipEntry( Path.GetFileName( file.Name ) );
    entry.DateTime = ( file.CreationTime > file.LastWriteTime ? file.LastWriteTime : file.CreationTime ); s.PutNextEntry( entry ); s.Write( buffer, 0, buffer.Length );
    fs.Close();
    file.Delete(); Thread.Sleep( SleepTimer );
    }
    }
    finally
    {
    s.Finish();
    s.Close();
    }
    }
    /// <summary>
    /// 解压缩文件
    /// </summary>
    /// <param name="GzipFile">压缩包文件名</param>
    /// <param name="dPath">解压路径</param>
    public static void UnZip( string GzipFile, string dPath )
    {
    ZipInputStream s = new ZipInputStream( File.OpenRead( GzipFile ) ); string directoryName = Path.GetDirectoryName( dPath + "\\" ) + "\\"; if ( !Directory.Exists( directoryName ) ) Directory.CreateDirectory( directoryName );//生成解压目录
    string CurrentDirectory = directoryName; byte[] data = new byte[2048];
    int size = 2048; ZipEntry theEntry = null;
    FileStream streamWriter = null;
    while ( ( theEntry = s.GetNextEntry() ) != null )
    {
    if ( theEntry.IsDirectory )
    {// 该结点是目录
    if ( !Directory.Exists( CurrentDirectory + theEntry.Name ) ) Directory.CreateDirectory( CurrentDirectory + theEntry.Name );
    }
    else
    {
    if ( theEntry.Name != String.Empty )
    {
    //解压文件到指定的目录
    streamWriter = File.Create( CurrentDirectory + theEntry.Name );
    while ( true )
    {
    size = s.Read( data, 0, data.Length );
    if ( size <= 0 ) break; streamWriter.Write( data, 0, size );
    }
    streamWriter.Close();
    }
    }
    }
    s.Close();
    }
      

  3.   

    ZipOutputStream 和ZipInputStream 
    都是
    ICSharpCode.SharpZipLib.dll 中的方法
      

  4.   

    用.Net自带的DES加解密不可以吗?
    例子在MSDN中。
      

  5.   

    .Net自带的加解密可以,但是千万千万不要用它的压缩,压缩比没有SharpZipLib的高,SharpZipLib可以压缩到30~40%,自带的只有70%,费解。