求一个批量下载的解决方案

Paladim 2008-10-08 04:33:27
RT
...全文
90 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
Paladim 2008-10-17
  • 打赏
  • 举报
回复
pass 结贴
贝克汉鸭 2008-10-17
  • 打赏
  • 举报
回复
这个就是把多个文件打成一个压缩包阿


string strDirPath = Environment.GetEnvironmentVariable("TEMP")+"\\"
+ DateTime.Now.ToString("yyyMMddHHmmssfff");

Directory.CreateDirectory(strDirPath);
DirectoryInfo objDir = new DirectoryInfo(strDirPath);

foreach (string strFileName in categoryIDList)
{
FileInfo objFile = new FileInfo(strFileName);
if (objFile.Exists == true)
{
objFile.CopyTo(objDir.FullName +"\\"+ objFile.Name);
}
}

// Zipファイルの作成
string strZipFile= WebConfig.ApplicationPath + ConfigurationManager.
AppSettings["ZipFilePath"] + DateTime.Now.ToString("yyyMMddHHmmssfff") + ".zip";

ZipFile objZipFile = new ZipFile();
objZipFile.ZipMain(objDir.FullName, strZipFile);


上面代码把你要打包的文件放入一个文件夹,然后压缩
Paladim 2008-10-17
  • 打赏
  • 举报
回复
谢谢楼上的,不过你这个貌似跟FRAMEWORK自带的那个差不多,只能操作一个文件,我现在是要打包多个文件,或者直接发多个文件给客户端
贝克汉鸭 2008-10-14
  • 打赏
  • 举报
回复
用ZIP类阿,把我的发给你吧

///---------------------------------------------------------------------------
/// 機能ID   :ZipFile
///
/// 機能名   :ファイルの圧縮
///
/// システム :バッチもばっちり
///
/// 作成日   :2008年9月3日
///
/// 作成者   :
///
/// 機能説明 :ファイルの圧縮する。
///---------------------------------------------------------------------------
using System;
using System.IO;
using ICSharpCode.SharpZipLib.Checksums;
using ICSharpCode.SharpZipLib.Zip;
using ICSharpCode.SharpZipLib.GZip;

namespace CommonPrj
{
public class ZipFile
{
///--------------------------------------------------------------------------
///
/// 機能 :ファイルの圧縮操作
///
/// 返り値 :なし
///
/// 引き数 :p_strFile - ファイルのパス
/// :p_strZip - 出力ファイルのパス
///
/// 作成日 :2008年9月3日
///
/// 作成者 :
///
/// 機能説明 :ファイルの圧縮操作を行う。
///
/// 注意事項 :なし
///
///--------------------------------------------------------------------------
public void ZipMain(string p_strFile, string p_strZip)
{
if (p_strFile[p_strFile.Length - 1] != Path.DirectorySeparatorChar)
{
p_strFile += Path.DirectorySeparatorChar;
}

// ファイルの圧縮操作
ZipOutputStream s = new ZipOutputStream(File.Create(p_strZip));
s.SetLevel(6);
zip(p_strFile, s, p_strFile);
s.Finish();
s.Close();
}

///--------------------------------------------------------------------------
///
/// 機能 :ファイルの圧縮操作
///
/// 返り値 :なし
///
/// 引き数 :p_strFile - ファイルのパス
/// :OutStream - IOStream
/// :p_strstaticFile - Staticファイル
///
/// 作成日 :2008年9月3日
///
/// 作成者 :
///
/// 機能説明 :ファイルの圧縮操作を行う。
///
/// 注意事項 :なし
///
///--------------------------------------------------------------------------
private void zip(string p_strFile, ZipOutputStream OutStream, string p_strstaticFile)
{
if (p_strFile[p_strFile.Length - 1] != Path.DirectorySeparatorChar)
{
p_strFile += Path.DirectorySeparatorChar;
}

// CRC 対象の作成
Crc32 crc = new Crc32();

// フォルダ名の取得
string[] filenames = Directory.GetFileSystemEntries(p_strFile);
foreach (string file in filenames)
{
// ファイルの存在しない場合
if (Directory.Exists(file))
{
zip(file, OutStream, p_strstaticFile);
}
// ファイルの存在しない場合
else
{
FileStream fs = File.OpenRead(file);

// ファイルの圧縮操作
byte[] buffer = new byte[fs.Length];
fs.Read(buffer, 0, buffer.Length);
string tempfile = file.Substring(p_strstaticFile.LastIndexOf("\\") + 1);
ZipEntry entry = new ZipEntry(tempfile);

entry.DateTime = DateTime.Now;
entry.Size = fs.Length;
fs.Close();
crc.Reset();
crc.Update(buffer);
entry.Crc = crc.Value;
OutStream.PutNextEntry(entry);

OutStream.Write(buffer, 0, buffer.Length);
}
}
}

}
}


还要引入一个DLL文件,ICSharpCode.SharpZipLib.dll,网上就有,实在找不到你留Mail我发你
Paladim 2008-10-14
  • 打赏
  • 举报
回复
ding...
紫气东来_999 2008-10-13
  • 打赏
  • 举报
回复
是指程序小偷那样批量下载链接上东西么?


关注。。
Paladim 2008-10-13
  • 打赏
  • 举报
回复
求个批量下载的解决方案啊,这还要怎么明白
Paladim 2008-10-13
  • 打赏
  • 举报
回复
怎么在FWQ端去调打包的程序?比如RAR?还是.NET自带?
其实我是比较想用这个方案啊...
如果是用命令提示符去调的话就算了,4过了行8通
贝克汉鸭 2008-10-13
  • 打赏
  • 举报
回复
方案1:把選擇的文件打成一個壓縮包下載。 缺點:客戶端必須有解壓縮軟件
方案2:用FTP下載 缺點:客戶不能指定下載到那個文件夾
Paladim 2008-10-13
  • 打赏
  • 举报
回复
不是...就是用户点了一个按钮,然后我这里要把一批文件传给客户端,这些文件是用户选择的,可多可少
ZKM_ZHANG 2008-10-13
  • 打赏
  • 举报
回复
小偷程序?
CodeDumbNess 2008-10-09
  • 打赏
  • 举报
回复
说的不明不白 怎么弄让人给你说的明明白白
Paladim 2008-10-09
  • 打赏
  • 举报
回复
顶起...
Paladim 2008-10-08
  • 打赏
  • 举报
回复
有高人指点吗...
Paladim 2008-10-08
  • 打赏
  • 举报
回复
我现在是方法不太文明,有点偷鸡摸狗,希望高人给个相对通用和完善的解决方案
paulin 2008-10-08
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 lovehongyun 的回复:]
先关注一下.
[/Quote]
lovehongyun 2008-10-08
  • 打赏
  • 举报
回复
先关注一下.
POPO_POPO 2008-10-08
  • 打赏
  • 举报
回复
FlashFXP好用阿

62,071

社区成员

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

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

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

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