解压文件
来源:互联网 发布:ntp协议使用的端口 编辑:程序博客网 时间:2024/04/30 08:45
前段时间做了一个自动发布的程序,需要解压缩.zip 结尾的文件,今天要做一个解压.jar 的文件,把原来的解压.zip的代码找回来试试,也可以解压.jar 文件的.呵呵,实在是比较高兴!
/// <summary>
/// 解压缩一个 zip 文件。
/// </summary>
/// <param name="zipFileName">要解压的 zip 文件</param>
/// <param name="extractLocation">zip 文件的解压目录</param>
/// <param name="password">zip 文件的密码。</param>
/// <param name="overWrite">是否覆盖已存在的文件。</param>
private void UnZipDir(string zipFileName, string extractLocation, string password, bool overWrite)
{
string myExtractLocation = extractLocation;
if (myExtractLocation == "")
myExtractLocation = Directory.GetCurrentDirectory();
if (!myExtractLocation.EndsWith(@"/"))
myExtractLocation = myExtractLocation + @"/";
ZipInputStream s = new ZipInputStream(File.OpenRead(zipFileName));
s.Password = password;
ZipEntry theEntry;
while ((theEntry = s.GetNextEntry()) != null)//判断下一个zip 接口是否未空
{
string directoryName = "";
string pathToZip = "";
pathToZip = theEntry.Name;
if (pathToZip != "")
directoryName = Path.GetDirectoryName(pathToZip) + @"/";
string fileName = Path.GetFileName(pathToZip);
Directory.CreateDirectory(myExtractLocation + directoryName);
if (fileName != "")
{
try
{
if ((File.Exists(myExtractLocation + directoryName + fileName) && overWrite) || (!File.Exists(myExtractLocation + directoryName + fileName)))
{
FileStream streamWriter = File.Create(myExtractLocation + directoryName + fileName);
int size = 2048;
byte[] data = new byte[2048];
while (true)
{
size = s.Read(data, 0, data.Length);
if (size > 0)
streamWriter.Write(data, 0, size);
else
break;
}
streamWriter.Close();
}
}
catch (ZipException ex)
{
FileStream fs = new FileStream(AppDomain.CurrentDomain.BaseDirectory + "log.txt", FileMode.OpenOrCreate, FileAccess.Write);
StreamWriter sw = new StreamWriter(fs);
sw.WriteLine(ex.Message);
}
}
}
s.Close();
}
- 解压文件
- 解压文件
- 解压文件
- 解压文件
- 解压文件
- 解压文件
- linux下解压文件
- 文件压缩与解压
- 解压jar文件
- Zip文件解压
- 解压文件,lha
- 解压文件代码
- 解压文件 Unzip
- tar.tar文件解压
- Ubuntu--解压rar文件
- Linux下解压文件
- exe 文件解压命令
- 实现程序解压文件
- 在 Borland C++ 及 Visual C++ 环境中使用 STLport
- Session使用
- Windows脚本宿主
- 主题:请教:如何提高BigDecimal的性能
- C#缓存
- 解压文件
- 开始运行命令集锦
- SAP-Retail标准教材下载
- iShowMusic V1.2 直接写shell漏洞
- 介绍ADO.NET中的数据并发
- reiserfs 日志结构
- Asp.net中常用的三十三种代码(一)
- POI读取EXCEL教程
- 上班族的无奈