一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

asp.net SharpZipLib的壓縮與解壓?jiǎn)栴}

我使用SharpZipLib.dll中遇到的問題是:利用SharpZipLib壓縮后生成的*.rar文件,利用其可以正常解壓,但如果使用文件右擊壓縮生成的*.RAR文件,在解壓過程中出錯(cuò),具體報(bào)錯(cuò)信息:Wrong Local header signature: 0x21726152 ;但*.zip文件可正常解壓。
具體壓縮、解壓代碼實(shí)現(xiàn)參照網(wǎng)絡(luò)上的代碼,貼出概要代碼:
復(fù)制代碼 代碼如下:
/// <summary>
/// 壓縮文件
/// </summary>
/// <param name="sourceFilePath">源文件路徑</param>
/// <param name="destinationPath">壓縮文件后的保存路徑</param>
/// <returns>壓縮是否成功</returns>
public bool Compress(string sourceFilePath, string destinationPath)
{
try
{
string[] filenames = Directory.GetFiles(sourceFilePath);
using (ZipOutputStream zs = new ZipOutputStream(File.Create(destinationPath)))
{
zs.SetLevel(9);
byte[] buffer = new byte[4096];
foreach (string file in filenames)
{
ZipEntry entry = new ZipEntry(Path.GetFileName(file));
entry.DateTime = DateTime.Now;
zs.PutNextEntry(entry);
using (FileStream fs = File.OpenRead(file))
{
int sourceBytes;
do
{
sourceBytes = fs.Read(buffer, 0, buffer.Length);
zs.Write(buffer, 0, sourceBytes);
}
while (sourceBytes > 0);
}
}
zs.Finish();
zs.Flush();
zs.Close();
}
}
catch (Exception)
{
return false;
}
return true;
} public bool DeCompress(string sourceFilePath, string destinationPath)
{
try
{
using (ZipInputStream zs = new ZipInputStream(File.OpenRead(sourceFilePath)))
{
ZipEntry entry = null;
//解壓縮*.rar文件運(yùn)行至此處出錯(cuò):Wrong Local header signature: 0x21726152,解壓*.zip文件不出錯(cuò)
while ((entry = zs.GetNextEntry()) != null)
{
string directoryName = Path.GetDirectoryName(entry.Name);
string fileName = Path.GetFileName(entry.Name);
if (!string.IsNullOrEmpty(fileName))
{
using (FileStream streamWriter = File.Create(destinationPath + entry.Name))
{
int size = 2048;
byte[] data = new byte[size];
while (true)
{
size = zs.Read(data, 0, data.Length);
if (size > 0)
{
streamWriter.Write(data, 0, size);
}
else
{
break;
}
}
}
}
}
}
}
catch (System.Exception)
{
return false;
}
return true;
}

如果需解壓*.rar的壓縮文件在網(wǎng)絡(luò)也可以找到相關(guān)的實(shí)現(xiàn)代碼,概要代碼:
復(fù)制代碼 代碼如下:
public bool DeCompressRAR(string sourceFilePath, string destinationPath)
{
try
{
string SeverDir = @"D:/Program Files/WinRAR";//rar.exe的要目錄
Process ProcessDecompression = new Process();
ProcessDecompression.StartInfo.FileName = SeverDir + "http://rar.exe";
Directory.CreateDirectory(sourceFilePath);
ProcessDecompression.StartInfo.Arguments = " X " + sourceFilePath + " " + destinationPath;
ProcessDecompression.Start();
while (!ProcessDecompression.HasExited)
{
//nothing to do here.
}
return true;
}
catch (System.Exception)
{
return false;
}
}

我本想利用FileUpload控件將上傳的壓縮文件解壓后保存至相對(duì)應(yīng)的目錄并更新數(shù)據(jù)庫文件目錄,后發(fā)現(xiàn)一些較好的用于上傳的開源軟件:如NeatUpload,SWFUpload可以較方便的實(shí)現(xiàn)我的需求,遂沒有過多糾纏于SharpZipLib,可能關(guān)于SharpZipLib的壓縮與解壓有其它用法,不能被我誤導(dǎo),以上代碼是從網(wǎng)絡(luò)上整合出來的,因?yàn)樗^于重復(fù)和散亂。

AspNet技術(shù)asp.net SharpZipLib的壓縮與解壓?jiǎn)栴},轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 亚洲福利网站 | 九色综合伊人久久富二代 | 久久精品伦理 | 五月婷婷综合激情 | 四虎影视色费永久在线观看 | 欧美精品国产制服第一页 | 亚洲国产精品自产在线播放 | 欧美成人精品三级网站 | 韩国一级片免费 | 精品精拍国产日韩26u | 久中文字幕中文字幕亚洲无线 | 日韩综合nv一区二区在线观看 | 国产精品亚洲欧美日韩久久 | 俄罗斯freexxxx性特大另类 | 女人张腿给男人桶视频免费版 | 亚洲国内| 久久青草免费91线频观看站街 | 韩国午夜理伦三级2020宅男 | 久久亚洲精品无码观看不卡 | 人人澡人人擦人人免费 | 日本精品一区二区三区视频 | 在线观看黄色网 | 国产免费精彩视频 | 国产乱论视频 | 欧美a极品极品欧美 | 成年美女黄网站色视频大全免费 | 久久影院精品 | 四虎影永久在线高清免费 | 国产中的精品一区的 | 成人激情四射网 | 一区二区视频网 | 免费韩国一级毛片 | 国产黄色91| 一区二区在线视频观看 | 涩涩爱网站 | 精品一区二区三区无卡乱码 | 黄视频网站入口 | 亚洲午夜在线观看 | 97精品国产自在现线免费 | 国产九九在线观看播放 | 2020最新国产精品视频 |