asp.net实现文件夹及文件压缩,并实现下载

asp.net实现文件夹及文件压缩,并实现下载,第1张

步骤

)先引用 ICSharpCode SharpZipLib dll

) cs文件引入

using System IOusing System Text

using ICSharpCode SharpZipLib Checksumsusing ICSharpCode SharpZipLib Zipusing ICSharpCode SharpZipLib GZip

代码

#region 下列代码为压缩并下载代码        ZipOutputStream zos = null       String strBaseDir = ""

       void dlZipDir(string strPath string strFileName)        {            MemoryStream ms = null           Response ContentType = "application/octet stream"           strFileName = HttpUtility UrlEncode(strFileName) Replace( + )           Response AddHeader("Content Disposition" "attachment   filename=" + strFileName + " zip")           ms = new MemoryStream()           zos = new ZipOutputStream(ms)           strBaseDir = strPath + ""           addZipEntry(strBaseDir)           zos Finish()           zos Close()           Response Clear()           Response BinaryWrite(ms ToArray())           Response End()       }

void addZipEntry(string PathStr)        {            DirectoryInfo di = new DirectoryInfo(PathStr)           foreach (DirectoryInfo item in di GetDirectories())            {                addZipEntry(item FullName)           }            foreach (FileInfo item in di GetFiles())            {                FileStream fs = File OpenRead(item FullName)               byte[] buffer = new byte[fs Length]               fs Read(buffer buffer Length)               string strEntryName = item FullName Replace(strBaseDir "")               ZipEntry entry = new ZipEntry(strEntryName)               zos PutNextEntry(entry)               zos Write(buffer buffer Length)               fs Close()           }      昌慎  }  

PRotected void Button _Click(object sender EventArgs e)        敏逗 {       耐拿敬      string userPath ="D:华海实训(qqview )各级账号和密码"                        dlZipDir(userPath "华海实训(qqview )服务账号")

}

#endregion

lishixinzhi/Article/program/net/201311/14232

分旅派和为两步羡困:

1.

文件上传到服务器某个拆盯目录,这一步比较简单;

2.

将文件进行解压到某个目录,这一步需要用到一个Ionic.Zip.dll。

痕忆丶

原创

关注

2点赞·4073人阅读

最近做到的项目世关于程序更新的,用到从服务器下载安装包,从服务器下载的安装包大脊灶多是压缩包,所以这里稍微研究了下如何用代码实现压缩包的解压及相关绝对路径的问题.

首先我来重现下我的目的:在这里我希望将桌面上得一个名为新建文件夹中的wget.rar的压缩文件解压至当前文件夹

那么该怎么做呢?网上说了些采用第三方解压缩代码,不过我并没有这方面的想法,我查看了较多的资料,发现windows自带能够解压的winrar.exe程序,可以通过system()函数类似shell命令行一样用语句调用winrar.exe程序.

下面给出我的代码,代码内有详细注释

#include<stdio.h>

#include<windows.h>

#include<tchar.h>

#include <iostream>

#include <stdlib.h>

using namespace std

int main()

{

string rarPath = "C:\\Program Files\\WinRAR"//该路径为winrar.exe的默认文件路径

/*puts("填入你系统的WINRAR.exe所在目录:")

gets(rarPath)*/

SetCurrentDirectoryA(rarPath.c_str())//将进程的工作目录移动到该参数所指的目录下,该目录为winrar.exe的默认文件路径

//解压c:\1.rar到桌面新建文件夹目录里

char* lcm="rar x C:\\Users\\Administrator\\Desktop\\新建文件夹\\wget.rar \"C:\\Users\\Administrator\\Desktop\\新建文件夹\\\""

/*这里给出上面命令的详细说明*/

/*rar x 是格式,意思为用winrar.exe执行全部提取文件.后面的一个路径为你要解压的文件的绝对路径,

第四个即最后面的路径为你要讲压缩文件解压到的位置的绝对路径*/

printf("shell command line :%s\n",lcm)

system(lcm)

puts("解压完毕.")

return 0

}

登录后复制

这里有几个重点:

①winrar.exe文件所在位置

②rar.exe的调用语句

下面我说下这两点

①你可以通过我图片中的路径查看自己的winrar.exe所在位置(基本上都是默认位置)

②关于rar.exe的调用语句.可以看这篇博客https://blog.csdn.net/qq_37059136/article/details/81477813

下面我展示下运行结果:

首先这是运行前的文件夹

运行界面

这是运行后的文件夹

可以看到成功解压!

别看这段代码不长,里面有用的信息着实很多,尤其是system()函数的用法及rar.exe的用法!!!

by糖果

精选推荐

广告

python暴力解压rar加密文件过程详解

2下载·0评论

2020年12月26日

详解python解压压缩包的五种方法

0下载·0评论

2020年9月19日

解决:给 VSCode 手动添加(解压压缩包)相关插件的问题

1225阅读·2评论·3点赞猜野孙

2022年11月26日

C# WinRar 解压缩

359阅读·0评论·0点赞

2019年3月8日

怎么创建dllwenjian_如何创建DLL文件

66阅读·0评论·0点赞

2020年12月22日

java解压压缩包

2053阅读·0评论·0点赞穗链

2021年8月3日

Visual Studio 里的版本兼容问题

1918阅读·0评论·0点赞

2019年7月4日

Visual Studio如何打开项目

3796阅读·4评论·6点赞

2022年10月3日

用ASP.NET实现文件的在线压缩和解压缩

1980阅读·0评论·0点赞

2006年7月12日

VS_C++代码段的使用方法

307阅读·0评论·1点赞

2021年7月14日

VS2017 mfc中添加自定义的资源--压缩文件

696阅读·0评论·0点赞

2021年3月15日

java 解压带密码rar_Java解压和压缩带密码的zip文件过程详解

819阅读·0评论·0点赞

2021年2月26日

WINRAR常用命令

899阅读·0评论·0点赞

2009年4月30日

WinRAR 5.5 破解方法 - 自己动手, 更放心

5.9W阅读·8评论·13点赞

2017年11月15日

C#调用RAR压缩与解压

2344阅读·0评论·0点赞

2007年9月7日

WinRAR 5.5 简体中文版去广告d窗方法

1.4W阅读·11评论·7点赞

2018年1月28日

Visual Studio 2010将解决方案打包成安装和卸载包的详细步骤

6288阅读·1评论·3点赞

2014年10月15日

VS2022+QT——从下载别人的代码压缩包后如何配置QT设置才能运行?

1033阅读·1评论·3点赞

2022年6月14日

C++调用WinRAR压缩解压文件

4498阅读·0评论·0点赞

2012年5月25日

VS扩展清理工具For VS2013/2015.rar

0下载·0评论

2019年9月2日

去首页


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/8187280.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存