salut !
je code avec la librairie ICSharpCode.SharpZipLib
Pour ce qui est du zip je créer un zip mais avec des grosses images tiff, ces des zip de plus de 200mo, donc il n'a pas le temps de toutes les incorporés ! En local ces #1
Et si tu a des ptits truc en passent cher pro du .net lolll
voici mon code :
<!--
//-----------------------------------------------------------------------------
// Utilisation de la librairie ICSharpCode.SharpZipLib pour compression
// Utilisation de la dll, placé dans le repertoire bin de l'application
//
[ Lien ]
//
// @author Jacques Gariépy
// @date : 15-09-2005
// @modif :
//-----------------------------------------------------------------------------
-->
<%@ Page Language="C#" Trace="false" Debug="true" src = "dvplib_UserBD.aspx.cs" %>
<%@ Register TagPrefix="ic" Namespace="ICSharpCode.SharpZipLib" Assembly="ICSharpCode.SharpZipLib, Version=0.84.0.0, Culture=neutral, PublicKeyToken=1b03e6acf1164f73" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="dvpwebserver" %>
<%@ Import Namespace="ICSharpCode.SharpZipLib.Zip" %>
<%@ Import Namespace="ICSharpCode.SharpZipLib.Tar" %>
<%@ Import Namespace="ICSharpCode.SharpZipLib.GZip" %>
<%@ Import Namespace="ICSharpCode.SharpZipLib.BZip2" %>
<!-- #include file="dvp_Web_Sever_Text.aspx" -->
<script runat="server">
int OrderId = -1;
public void CompressFiles(string TypeCompress, int LevelCompress, int idOrder)
{
ZipEntry MyZipEntry; //les files inclus dans le zip
ZipOutputStream MyZipOutputStream = null; //le output pour le zip
FileStream MyFileStream = null;//manipulation des files
int CountFiles; //compteur pour les files
int i; //compteur des files pour le for des files
string NameZipFiles;
Basket Basket;
BDIterator BDGeoFilesIterator;
bool EndBasket;
bool Even;
EndBasket = true;
NameZipFiles = "" + idOrder + "";
Basket = new Basket();
BDGeoFilesIterator = null;
BDGeoFilesIterator = Basket.GetGeoFilesIdListForBasket(idOrder);
try {MyZipOutputStream = new ZipOutputStream((File.Create(dvp_ZipFolder + NameZipFiles + "." + TypeCompress)));}catch (Exception e){}
//la compression ce fait entre 0 et 9, 0 = sans compression : 9 = max compression
MyZipOutputStream.SetLevel(LevelCompress); //Niveau de compression
try {
//GroupAccesTypeForCollection
//int GroupId = int.Parse(Session["user_GroupId"].ToString());
//BDGeoFilesIterator.GetString("GeoFiles.CollectionId")
while (EndBasket == true){
try {MyFileStream = File.OpenRead(BDGeoFilesIterator.GetString("FolderGeofilePath") + BDGeoFilesIterator.GetString("GeoFiles.Name") + BDGeoFilesIterator.GetString("Extension"));}catch (Exception e){}
byte[] buffer = new byte[MyFileStream.Length];
MyZipEntry = new ZipEntry(Path.GetFileName(BDGeoFilesIterator.GetString("FolderGeofilePath") + BDGeoFilesIterator.GetString("GeoFiles.Name") + BDGeoFilesIterator.GetString("Extension")));
MyZipOutputStream.PutNextEntry(MyZipEntry);
byte[] buffer2 = new byte[MyZipOutputStream.Length];
CountFiles = MyFileStream.Read(buffer, 0, buffer.Length);
while (CountFiles > 0){
MyZipOutputStream.Write(buffer, 0, CountFiles);
CountFiles = MyFileStream.Read(buffer, 0, buffer.Length);
}
try {MyFileStream.Flush();}catch (Exception e){}
try {MyFileStream.Close();}catch (Exception e){}
EndBasket = BDGeoFilesIterator.Next();
}
try {MyZipOutputStream.Flush();}catch (Exception e){}
try {MyZipOutputStream.Close();}catch (Exception e){}
}
catch (Exception e){ //Erreur générique gérée
try {MyFileStream.Flush();}catch (Exception f){}
try {MyFileStream.Close();}catch (Exception f){}
try {MyZipOutputStream.Flush();}catch (Exception f){}
try {MyZipOutputStream.Close();}catch (Exception f){}
}
try {BDGeoFilesIterator.CloseIterator();}catch (Exception e){}
string linkZip = URL_WebSiteUrl + Url_Zip_Download + "/" + NameZipFiles + "." + TypeCompress;
Response.Write(dvp_LinkZip + "<br><br><a href='" + linkZip + "'>"+ NameZipFiles +"</a>");
}
void Page_Load(object sender, System.EventArgs e)
{
OrderId = int.Parse(Request.QueryString["OrderId"].ToString());
Button1.Text = dvp_ZipButton;
//CompressFiles("zip", 0, OrderId);
}
void Button1_Click(Object sender, EventArgs e)
{
CompressFiles("zip", 0, OrderId);
}
/*
void Button2_Click(Object sender, EventArgs e)
{
CompressFiles("tar", 0, OrderId);
}
void Button3_Click(Object sender, EventArgs e)
{
CompressFiles("gzip", 0, OrderId);
}
void Button4_Click(Object sender, EventArgs e)
{
CompressFiles("BZip2", 0, OrderId);
}
*/
</script>
<html>
<body>
<form runat="server" method="post">
<asp:Button id="Button1" onclick="Button1_Click" runat="server" Text=""></asp:Button>
</form>
</body>
</html>
Merci !!!!