上传文件压缩后没有后缀名

爱捉弄你 2009-10-13 06:19:27
上传文件压缩后没有后缀名

public static void CompressFile(string sourceFile, string destinationFile)
{
if (!File.Exists(sourceFile)) throw new FileNotFoundException();
using (FileStream sourceStream = new FileStream(sourceFile, FileMode.Open, FileAccess.Read, FileShare.Read))
{
byte[] buffer = new byte[sourceStream.Length];
int checkCounter = sourceStream.Read(buffer, 0, buffer.Length);
if (checkCounter != buffer.Length) throw new ApplicationException();
using (FileStream destinationStream = new FileStream(destinationFile, FileMode.OpenOrCreate, FileAccess.Write))
{
using (GZipStream compressedStream = new GZipStream(destinationStream, CompressionMode.Compress, true))
{
compressedStream.Write(buffer, 0, buffer.Length);
}
}
}
}

适用上面的代码 上传文件 到制定的地方 后解压开 没有后缀名

是代码本身的问题么......



....大家有更好的代码么 有的话分享下....谢谢啦....



....小弟在线等
...全文
1004 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
dengrenyi 2012-03-15
  • 打赏
  • 举报
回复
这么多年了,不知道LZ还在线不。。。今天被同样的问题困扰。于是我用了以下代码解决:
private void dabaoduogewenjian()
{
// 压缩
ZipOutputStream s = new ZipOutputStream(File.Create("D:\\bbbb" + ".zip"));
//生成一个GZipOutputStream流,用来生成压缩文件。
//因为GZipOutputStream由Stream派生,所以它可以赋给Stream。
FileStream fs = File.OpenRead("D:\\bbbb.doc");
FileStream fs1 = File.OpenRead("D:\\data.xml");
//生成一个文件流,它用来打开要压缩的文件
//可以使用System.IO.File的静态函数OpenRead来生成文件流
byte[] writeData = new byte[fs.Length];
//指定缓冲区的大小
fs.Read(writeData, 0, (int)fs.Length);
//读入文件
ZipEntry entry = new ZipEntry("bbbb.doc");
s.PutNextEntry(entry);
s.Write(writeData, 0, writeData.Length);

writeData =new byte[fs1.Length];
fs1.Read(writeData, 0, (int)fs1.Length);
ZipEntry entry1 = new ZipEntry("data.xml");
s.PutNextEntry(entry1);
s.Write(writeData, 0, writeData.Length);

//写入压缩文件
s.Close();
//关闭文件
}
fable说 2009-10-13
  • 打赏
  • 举报
回复
不懂,请高人解决……
woaixiayutian 2009-10-13
  • 打赏
  • 举报
回复
难道是所上传的服务器有问题?或许是服务器启用了“隐藏已知文件类型的扩展名”。。。
wuyq11 2009-10-13
  • 打赏
  • 举报
回复
using ICSharpCode.SharpZipLib.Zip;
using ICSharpCode.SharpZipLib.GZip;
public void ZipFile(string FileToZip, string ZipedFile, int CompressionLevel, int BlockSize)
{
if (!System.IO.File.Exists(FileToZip))
{
throw new System.IO.FileNotFoundException("The specified file " + FileToZip + " could not be found. Zipping aborderd");
}

System.IO.FileStream StreamToZip = new System.IO.FileStream(FileToZip, System.IO.FileMode.Open, System.IO.FileAccess.Read);
System.IO.FileStream ZipFile = System.IO.File.Create(ZipedFile);
ZipOutputStream ZipStream = new ZipOutputStream(ZipFile);
ZipEntry ZipEntry = new ZipEntry("ZippedFile");
ZipStream.PutNextEntry(ZipEntry);
ZipStream.SetLevel(CompressionLevel);
byte[] buffer = new byte[BlockSize];
System.Int32 size = StreamToZip.Read(buffer, 0, buffer.Length);
ZipStream.Write(buffer, 0, size);
try
{
while (size < StreamToZip.Length)
{
int sizeRead = StreamToZip.Read(buffer, 0, buffer.Length);
ZipStream.Write(buffer, 0, sizeRead);
size += sizeRead;
}
}
catch (System.Exception ex)
{
throw ex;
}
ZipStream.Finish();
ZipStream.Close();
StreamToZip.Close();
}

System.Diagnostics.Process Process1 = new System.Diagnostics.Process();
Process1.StartInfo.FileName = "Winrar.exe";
Process1.StartInfo.CreateNoWindow = true;
Process1.StartInfo.Arguments = " a -r " + strzipPath + " " + strtxtPath;

static bool GZipFile(string sourcefilename, string zipfilename)
{
bool blResult;
FileStream srcFile = File.OpenRead(sourcefilename);
GZipOutputStream zipFile = new GZipOutputStream(File.Open(zipfilename,FileMode.Create));
try
{
byte[] FileData = new byte[srcFile.Length];
srcFile.Read(FileData, 0, (int)srcFile.Length);
zipFile.Write(FileData, 0, FileData.Length);
blResult = true;
}
catch (Exception ee)
{
Console.WriteLine(ee.Message);
blResult = false;
}
srcFile.Close();
zipFile.Close();
return blResult;
}




zhengliyan_star 2009-10-13
  • 打赏
  • 举报
回复
下班了,帮顶了!
PandaIT 2009-10-13
  • 打赏
  • 举报
回复
帮顶看下有星星没!!
市面上能下载的《算法导论》中文版都没有目录(标签),阅读极不方便,翻阅困难。本人(crocostone)亲自手动制作了完整的标签,包括章、节、小节的标签,在Acrobat 7.0和9.0版本和FoxitReader 4.2版本均能打开。 而且,我精心调整了文档的大小,打开或点击标签的时候,默认就是最适合阅读、眼睛最舒服的文档大小,无需再调整大小。 本人亲自制作,在CSDN上奉献,欢迎使用!有了目录(标签),学习效率真的可以提高一大截啊!!!注意本压缩包使用WinRAR分卷压缩,4个部分都下载后才能解压! 为什么要分卷:整个文件有130MB,crocostone的上传权限不够,所以只能分卷压缩。已经测试:这4个压缩包,使用WinRAR/7zip/Haozip都能正确解压!!! 内容: 1、全世界唯一带“完整”目录的《算法导论》第二版中文版。 2、目前能找到的多个版本的习题答案和代码,有Java实现的,C++实现的,官方的、非官方的,教参,考试题答案等等! 3、讲义。 4、算法导论第二版最清晰的英文版,文字和伪代码可以拷出来。 书籍介绍: 《算法导论》(Introduction to Algorithms)原书第二版,Thomas H. Cormen(科曼)、Charles E. Leiserson、Ronald L.Rivest、Clifford Stein著,南京大学潘金贵、顾铁成、李成法、叶懋等译,机械工业出版社,2006。本书简称CLRS,麻省理工学院教材,全世界最广泛使用的算法超经典书籍,学习编程必看之书。作者之一的Rivest就是RSA算法发明者的R,2002年图灵奖得主。算法是程序员必练内功。此书主要讨论算法,数据结构方面的内容稍少。中文翻译质量不错。 ########################【对于crocostone本人前面发的算法导论的资源的说明】########################### download.csdn.net/source/3109111和download.csdn.net/source/3109150是一套两个部分的压缩文件,后缀名是001和002,不要改名,只能用7zip和Haozip解压,用WinRAR无法解压,解压后是带章、节、小节目录的算法导论。 download.csdn.net/source/3108513和download.csdn.net/source/3108520是另一套两个部分的压缩文件,后缀名是001和002,不要改名,只能用7zip和Haozip解压,用WinRAR无法解压,解压后是带章目录的算法导论,但是没有节和小节的目录。 本人的电脑以前没有WinRAR,而是一直使用7zip,但是7zip制作的zip分卷压缩格式竟然与WinRAR不兼容,导致前面发的资源,用WinRAR的网友说无法解压,在这里表示抱歉!使用7zip或Haozip的人都解压成功了。 这次发的资源,4个压缩包,使用WinRAR/7zip/Haozip都能正确解压! 请CSDN网友,下载完,评论的同时,要点击评论框上方的五角星(共5个五角星),这样你的被扣的积分就可以返还,还会加一分。如果只评论,不点击小五角星,积分不会返还。一定要先下载完,再评论。如果先评论后下载,或者在下载的过程中评论,积分同样不会返还。 数据结构教材,我强烈推荐Sartaj Sahni著《数据结构算法与应用——C++语言描述》。这是一部难得的好书,作者循序渐进,娓娓道来,每一种数据结构和算法都给出了详细的实现代码和运行结果,而且代码质量极高,甚至可以直接照搬到商业软件开发中。此书的算法部分也很精到,比算法导论更容易学习和入门。Sartaj Sahni《数据结构算法与应用——C++语言描述》全集,包含中英文图书、代码、习题答案、演示动画,都是我亲自从此书的官方网站下载并汇总的,绝对权威,请在这里下载:download.csdn.net/source/3043982 算法和数据结构是计算机的绝对核心技术。学好核心技术,既为了自己,也为了天空不落下别国的炸弹,别国的天空落下我们的炸弹!

62,254

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧