package package和packagingg有什么区别吗?

最近在项目中需要进行文件压缩,即将打包好的压缩文件提供给用户,用户进行下载。
获知微软提供了一个System.IO.Packaging.Package的类,从而可以进行打包,那么我就进行了使用。谁知道,这一用就用出事了。
首先看代码吧。
结构并不复杂,vs2010+mvc3,直接写在action里。(例子是这样写的)需要注意的是,System.IO.Packaging.Package是在WindowsBase.dll里的。
private const long BUFFER_SIZE = 4096;
public ActionResult DownLoad(int id)
//实际情况中,此处将会根据id从数据库中获得数据列表
//此列表中将包括需要压缩的文件名
byte[] file = null;
//假设,有一个download目录,作为下载目录,其中包含若干文件
string folder = Server.MapPath("~/download/");
DirectoryInfo f = new DirectoryInfo(folder);
using (MemoryStream ms = new MemoryStream())
using (Package zip = Package.Open(ms, FileMode.Create))//使用内存流打开
//在实际情况中,此处将会是一个循环,从数据库中获得一批需要进行压缩的文件路径
//获得相对根路径
Uri uri = PackUriHelper.CreatePartUri(new Uri("文件路径", UriKind.Relative));
if (zip.PartExists(uri))//如果此文件已存在,删掉
zip.DeletePart(uri);
PackagePart part = zip.CreatePart(uri, "", CompressionOption.Normal);
//使用文件流打开需要压缩的文件
using (FileStream fileStream = new FileStream(folder + "文件路径", FileMode.Open, FileAccess.Read))
using (Stream dest = part.GetStream())
//将数据复制到stream中
CopyStream(fileStream, dest);
//此处对应循环结束
file = ms.ToArray();
return File(file, "application/x-zip-compressed", "myFile.zip");
catch (Exception ex)
return View("Error");
private static void CopyStream(System.IO.Stream inputStream, System.IO.Stream outputStream)
long bufferSize = inputStream.Length & BUFFER_SIZE ? inputStream.Length : BUFFER_SIZE;
byte[] buffer = new byte[bufferSize];
int bytesRead = 0;
long bytesWritten = 0;
while ((bytesRead = inputStream.Read(buffer, 0, buffer.Length)) != 0)
outputStream.Write(buffer, 0, bytesRead);
bytesWritten += bufferS
虽然我对于流的理解并不是很好,但是大概的代码思路还是有的。感觉这里并没什么问题。可是,结果却并非我所想象的那样。
首先,在本地进行测试,并无错误。
然后部署到IIS中,其中包括iis7和iis6.一开始并不报错,但是后来就开始出错了。
报的最频繁的错误就是,无法访问已关闭的流。
还有一个是什么具体的忘记了。最直观的就是,当下载的压缩包并不大时,大概在20-30M左右,没事。一旦在大点,就开始报错了。
这让我很不能理解。
我在一台服务器上设置了everyone的权限,没事了,当去掉everyone的权限后,错误又出现了。
此时,开始考虑错误。
个人的想法是:压缩包从内存流中读取,然后通过文件流进行写入,此时应当会产生一个临时文件,但是这个临时文件的大小是受限的,一旦太大
就无法继续进行写入了。从而关闭文件流。
当然,到底是否是正确的,还无从得知。因为,到现在也没有获得正确的答案。
最终使用了另外的一种压缩方法进行压缩。
在此,将问题抛出,静等园内众神指点解惑。
PS:貌似直接ouputstream不行。
阅读(...) 评论()关于包装Frustration-Free Packaging和Standard Packaging哪个好_百度知道
关于包装Frustration-Free Packaging和Standard Packaging哪个好
我有更好的答案
这个因人而异吧。讲求环保的,用FFP,简易包装。想要送人,或者自己想保留盒子的,用SP,标准包装。一般来说标准包装贵一点点。
采纳率:28%
Standard Packaging的好。
为您推荐:
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。parcel package pack packet packaging有什么区别?_百度知道
parcel package pack packet packaging有什么区别?
附图最好啦~
parcel 邮包package 一般是讲一包或者一套东西pack 包装,有时是动词,指包装packet 就是一包,比如一包纸什么的packaging 虽然是名词,但是讲的是包装的这么一个动作除了parcel和packaging这两个词有明显不同外,剩下的3个基本可以互换
采纳率:35%
parcel 邮包package
包装(动词),一群packet
一小包packaging
包装(名词)
为您推荐:
其他类似问题
您可能关注的内容
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。黄纸箱里的大学问:美国亚马逊 Amazon Frustration-Free Packaging服务_购物攻略_什么值得买
黄纸箱里的大学问:美国亚马逊 Amazon Frustration-Free Packaging服务
注:本文标题很高端,但内容很粗俗!开门见山,直接上高清无码大图!-----大家是否曾经被这种包装塑料纸划破过手指&落红前段时间买了一个Philips的电动牙刷,包装很犀利,全部用透明硬塑料包装,而且这货居然没有任何方便开启的机关,只能用剪刀小心翼翼剪了半天,一边剪一边骂Philips神经病。-----大家是否曾经转运过来的宝贝(节操)碎一地!碎成这样,是不是看得蛋蛋都碎了!啊?你没蛋蛋,那我的贡献给你吧!!如果2者都有碰到过,那恭喜你---RP真LAN对于辛辛苦苦快递或者转运来的宝贝,大家肯定是希望到手完好,而不是身首异处,当然拆封方便也是很多人心里默认的要求!那么客户对于包装有新的要求,各大厂商是怎么应对的呢?下面就来看看最大电商Amazon的措施!Amazon在08年就推动一个,它将和各家供应商谈判,提供“Frustration-Free Package”选项——也就是简单方便的包装。可以看出这种包装的优越性。Amazon在鼓励消费者上传图片和视频来“控诉”那些白痴变态不方便的包装。Amazon这样做实在是一举数得:1. 很多人(比如我)就很讨厌那种硬塑料包装,会很支持Amazon的改革;2. 现在越来越多人开始重视环保,他们也会喜欢新包装,而且对Amazon会有“环保”的印象;3. 传统零售中,商品包装也起到了很重要的Marketing作用——所以才会越做越复杂,越做越花哨。对于电子商务而言,购买往往是通过产品实物照片来做判断,包装的重要性已经大大下降。——退一步来说,如果你一定觉得把商品放在传统包装里拍摄产品图片,然后送货时用新包装(消费者可以选择);4. 最重要的是,Amazon可以省下一大笔钱。和几大家供应商谈好的新包装,应该可以使得产品的堆放更加方便,Shipping出货也可以省很多,首先可以省下Box的钱(新包装更适合直接贴上Label就发货,老包装的话还得再装到纸盒里),然后可以省下填充物(Peanut, 牛皮纸,充气塑料袋),最后还省下包装的人工。PS:最后一点对于转运公司来说也很有利,直接再贴个Label就可以出库了,不仅包装结实,而且加快了出库速度。这一点广大海淘一族肯定会大力赞同,说不定就因为这Frustration-Free Package可以省去几天漫长而又煎熬的收货过程!(注:下面我就举例来看看所谓的几种包装的区别,希望对广大淘友有帮助!)如这款缤特力的蓝牙耳机--Plantronics Voyager Legend Bluetooth Headset&&细心的朋友肯定也发现美亚现在的包装有Standard Packaging,Frustration-Free Package,(Retail Packaging等)如果选择Standard Packaging就是下图的包装外面再加一个亚马逊的黄色纸箱,送人建议选择这个版本包装的。问我为什么?高端大气上档---过年送礼体面啦!但是转运重量肯定会增加一点,自用的话真心没必要了,反正包装盒到手最多也是积灰尘。下图就是Plantronics Voyager PRO HD&的Retail Packaging,价格方面会有一点优势,包装也不错,特别是直接能看到庐山真面目,是不是感觉特合适在walmart这样的地方卖呢,让人买得放心,用得舒心!^_^但是如果是要转运到国内,一般良心转运会在外面包一个黄纸箱,但是这包装还是很容易碎有木有!讲了这么就,还是没讲到Frustration-Free Package,那还是直接上高清无码图吧!Amazon Frustration-Free为简包装,类似于kindle的环保包装。部分产品Frustration-Free和Standard Packaging虽仅外观不同,但是送人的话,Frustration-Free不好看。当然如果是送好基友,他肯定不会介意是什么包装的,心里只会有慢慢的幸福!(最后的最后,下面的下面,是我本人最想要的一种包装!大家觉得这样的包装好,就点赞吧!小编说了超过500W赞,会和贝索斯去讨论这个包装的可行性的!)烟熏红唇欧美范,丝袜短裙日韩风。拽霸炫酷屌炸天,低调奢华有内涵。显白显瘦有气质,威武霸气女汉子。兵长永远一米六,深入浅出易^_^。文静内敛有深度,小伙伴们都惊呆。
本文著作权归作者本人和什么值得买共同所有,未经许可不得转载。文章仅代表作者看法,如有更多内容分享或是对文中观点有不同见解,值客原创欢迎您的投稿。
推荐关注:
鼠标移到标签上方,
尝试关注标签~
相关热门原创
作者其他原创(4)
START共享有车 上汽荣威 RX5 (5天租车券+500元油卡)
德国osann欧颂 FOX弗克巴巴 新生儿安全座椅0-4岁
魅族 LIVE 四单元动铁耳机
360 S6 智能扫地机器人
PHILIPS飞利浦K38003 麦克风
先河ARS-PCS-S1 先河私有云服务器
赞34评论95
赞67评论93
赞33评论45
赞552评论317
赞797评论252
赞455评论260
赞350评论209
赞370评论196
扫一下,分享更方便,购买更轻松
用户名/邮箱
两周内免登录package和packing的区别_百度知道
package和packing的区别
我有更好的答案
packing是名&#47, ‘Handle with care’,指包装起来的东西,packing的对象结果;动词:包装On the outer packing please mark the wording.在外包装上请标明“小心轻放”字样。packing your bage*packaging是包装(名词),同packing的名词性解释.*package是包裹(名词)
企管部主管
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 bundle和package区别 的文章

 

随机推荐