实现在线压缩文件的实现程序代码

[引入using System.Diagnostics;using Microsoft.Win32;]
#region 使用GZip压缩文件,返回bool值
/// <param name="FileSource">要压缩的源文件名</param>
/// <param name="FileTarget">压缩后的文件名</param>
/// <returns>压缩后的成功类型</returns>
public static bool GZipFile(string FileSource, string FileTarget)
{
byte[] myByte = null;
FileStream myStream = null;
FileStream myDesStream = null;
GZipStream myComStream = null;
try
{
myStream = new FileStream(FileSource, FileMode.Open, FileAccess.Read, FileShare.Read);
myByte = new byte[myStream.Length];
myStream.Read(myByte, 0, myByte.Length);
myDesStream = new FileStream(FileTarget, FileMode.OpenOrCreate, FileAccess.Write);
myComStream = new GZipStream(myDesStream, CompressionMode.Compress, true);
myComStream.Write(myByte, 0, myByte.Length);
return true;
}
catch(Exception ex)
{
exceptionMessage = ex.Message;
return false;
}
finally
{
myStream.Close();
myComStream.Close();
myDesStream.Close();
}

}
#endregion

#region 使用GZip解压文件,返回bool值
/// <summary>
/// 使用GZip解压文件,返回bool值
/// </summary>
/// <param name="FileSource">要解压的源文件名</param>
/// <param name="FileTarget">要解压的文件名</param>
/// <returns>解压的成功类型</returns>

public static bool GZipSFile(string FileSource, string FileTarget)
{
byte[] myByte = null;
FileStream myStream = null;
FileStream myDesStream = null;
GZipStream myDeComStream = null;
try
{
myStream = new FileStream(FileSource, FileMode.Open);
myDeComStream = new GZipStream(myStream, CompressionMode.Decompress, true);
myByte = new byte[4];
int myPosition = (int)myStream.Length - 4;
myStream.Position = myPosition;
myStream.Read(myByte, 0, 4);
myStream.Position = 0;
int myLength = BitConverter.ToInt32(myByte, 0);
byte[] myData = new byte[myLength + 100];
int myOffset = 0;
int myTotal = 0;
while (true)
{
int myBytesRead = myDeComStream.Read(myData, myOffset, 100);
if (myBytesRead == 0)
break;
myOffset += myBytesRead;
myTotal += myBytesRead;
}
myDesStream = new FileStream(FileTarget, FileMode.Create);
myDesStream.Write(myData, 0, myTotal);
myDesStream.Flush();
return true;
}
catch(Exception ex)
{
exceptionMessage = ex.Message;
return false;
}
finally
{
myStream.Close();
myDeComStream.Close();
myDesStream.Close();
}
}
#endregion

[目标机器上必须装有winrar压缩软件]
#region 使用WinRAR压缩文件
/// <summary>
/// 使用WinRAR压缩文件
/// </summary>
/// <param name="FileSource">要压缩的源文件名</param>
/// <param name="FileTarget">压缩后的文件名</param>
/// <returns>压缩的成功类型</returns>
public static bool RarFile(string FileSource, string FileTarget)
{
String myRar;
RegistryKey myReg;
Object myObj;
String myInfo;
ProcessStartInfo myStartInfo;
Process myProcess;
try
{
myReg = Registry.ClassesRoot.OpenSubKey("Applications\\WinRAR.exe\\Shell\\Open\\Command");
myObj = myReg.GetValue("");
myRar = myObj.ToString();
myReg.Close();
myRar = myRar.Substring(1, myRar.Length - 7);
myInfo = " a " + FileTarget + " " + FileSource;
myStartInfo = new ProcessStartInfo();
myStartInfo.FileName = myRar;
myStartInfo.Arguments = myInfo;
myStartInfo.WindowStyle = ProcessWindowStyle.Hidden;
myProcess = new Process();
myProcess.StartInfo = myStartInfo;
myProcess.Start();
return true;
}
catch(Exception ex)
{
exceptionMessage = ex.Message;
return false;
}
}
#endregion

#region 使用WinRAR解压文件
/// <summary>
/// 使用WinRAR解压文件
/// </summary>
/// <param name="FileSource">要解压的源文件名</param>
/// <param name="FileTarget">解压后的文件名</param>
/// <returns>解压的成功类型</returns>

public static bool RarSFile(string FileSource, string FileTarget)
{
String myRar;
RegistryKey myReg;
Object myObj;
String myInfo;
ProcessStartInfo myStartInfo;
Process myProcess;
try
{
myReg = Registry.ClassesRoot.OpenSubKey("Applications\\WinRar.exe\\Shell\\Open\\Command");
myObj = myReg.GetValue("");
myRar = myObj.ToString();
myReg.Close();
myRar = myRar.Substring(1, myRar.Length - 7);
myInfo = " X " + FileSource+ " " + FileTarget + "\\";
myStartInfo = new ProcessStartInfo();
myStartInfo.FileName = myRar;
myStartInfo.Arguments = myInfo;
myStartInfo.WindowStyle = ProcessWindowStyle.Hidden;
myProcess = new Process();
myProcess.StartInfo = myStartInfo;
myProcess.Start();
return true;
}
catch(Exception ex)
{
exceptionMessage = ex.Message;
return false;
}
}
#endregion

转载原文:http://www.zhixing123.cn/net/16278.html

时间: 2024-10-21 02:42:05

实现在线压缩文件的实现程序代码的相关文章

flash多文件上传程序代码

原文:flash多文件上传程序代码 源代码下载地址:http://www.zuidaima.com/share/1550463485168640.htm

jsp开发无刷新文件上传程序代码

原文:jsp开发无刷新文件上传程序代码 源代码下载地址:http://www.zuidaima.com/share/1550463484660736.htm 无刷新文件上传程序代码 源代码截图

linux 压缩文件的命令总结

Linux压缩文件的读取 ·    *.Z       compress 程序压缩的档案: ·    *.bz2     bzip2 程序压缩的档案: ·    *.gz      gzip 程序压缩的档案: ·    *.tar     tar 程序打包的数据,并没有压缩过: ·    *.tar.gz  tar 程序打包的档案,其中并且经过 gzip 的压缩! ·    *.zip     zip 程序压缩文件 ·    *.rar     rar 程序压缩文件 Compress压缩文件 [

Linux 压缩文件的命令行总结

Linux压缩文件的读取 ·    *.Z       compress 程序压缩的档案: ·    *.bz2     bzip2 程序压缩的档案: ·    *.gz      gzip 程序压缩的档案: ·    *.tar     tar 程序打包的数据,并没有压缩过: ·    *.tar.gz  tar 程序打包的档案,其中并且经过 gzip 的压缩! ·    *.zip     zip 程序压缩文件 ·    *.rar     rar 程序压缩文件 Compress压缩文件 [

PHP在线调查程序代码-途牛博客

无需数据库在线投票调查php代码,这是一款由php +txt文本文件做的在线调用投票系统,无需数据库支持可以完成在线用户调查功能. html代码如下: <html> <head> <title>在线调查程序代码</title> </head> <body> <form method="post" action="survey.php"> <p><input type

CodeFolderClear 自动清理代码文件夹下无用文件的小程序及源码

最近常要用U盘拷贝代码,发现编译器生成的各种中间文件占用了大量的空间,手工删除起来费时费力,所以就萌生了写一个小工具搞定这一切都念头. 说干就干,晚上熬夜搞定! 小工具程序及源码工程的下载链接:    点击下载 用简单的方式进行处理,递归删除.下面统计量下要删除的文件: 工程目录下: 工程目录的判断依据: 有工程文件 *.vcxproj *.sdf *.suo *.user 生成目录(Debug/Release等)下的文件: *.obj *.cache *.exp *.ilk *.lastbui

掌握在线压缩PDF小技巧,文件多大都没事

在工作学习中我们经常会将文件保存为PDF格式,从网络上下载的资料.论文.小说什么的也基本是PDF格式,不管文件多大,我们用自己的设备查看基本没啥问题.不过当把文件传输给同事.客户查看时,文件如果太大就会影响传输速度,耽误工作:而且当你想将一份较大PDF文件上传云盘的时候,除非你是云盘会员,不然上传速度慢,下载速度更慢,非常浪费时间. 所以今天小编就介绍一个在线压缩PDF的小技巧,简单易学,完美解决PDF文件过大问题. 首先打开在线PDF文档处理平台--PDF365.cn 接着点击"PDF压缩&q

java压缩文件解压:调用WinRAR5命令强于自己写代码实现

最近,手上维护着一个几年前的系统,技术是用的JSP+Strust2,系统提供了rar和zip两种压缩格式的解压功能,后台是用java实现的 1.解压rar格式,采用的是java-unrar-0.3.jar 2.解压zip格式,采用的是commons-compress-1.4.1.jar 但最近根据用户反馈的问题,发现系统存在两个关于压缩文件解压的问题: 1.有些压缩文件解压之后出现中文乱码: 2.有些压缩文件根本不能解压 为了弥补上述两个问题,在之前代码的基础上打了一些补丁,来解决zip压缩包乱

图片文件如何进行在线压缩,在线压缩的方法

图片怎么进行压缩,而且还是在线的压缩,很多的时候我们会遇到各种各样的图片文件,随着时间一长,图片增加,我们的电脑手机就有卡顿的情况,图片不可以删除的话可以进行在线压缩,下面教给大家一种在线压缩软件的操作方法. 1:首先在浏览器搜索图片压缩,找到一个图片压缩网站,进入到网站的首页. 2:进入到首页后,在首页导航栏的位置找到文档处理,在文档处理的底部位置可以看到图片压缩. 3:点击图片压缩进入到压缩的页面,进入压缩页面后,点击选择文件,选择需要进行压缩的图片文件. 4:选择文件后,在选择文件下面可以