
Untitled
By: a guest on
Apr 30th, 2012 | syntax:
C# | size: 2.59 KB | hits: 16 | expires: Never
// supprimer un fichier
public void Delete(string args)
{
string fileToDelete = args;
System.IO.File.Delete(fileToDelete);
}
// extraire un zip
public void _ExtractFilesFromZip(string zipFilename, string destFolder, string password, bool overwrite)
{
if (!destFolder.EndsWith("\\")) destFolder = destFolder + '\\';
ZipInputStream zipStream = new ZipInputStream(
new FileStream(zipFilename, FileMode.Open));
try
{
zipStream.Password = password;
ZipEntry zipEntry;
byte[] buff = new byte[65536];
while ((zipEntry = zipStream.GetNextEntry()) != null)
{
if (zipEntry.IsDirectory)
{
if (!Directory.Exists(destFolder + zipEntry.Name.TrimStart('/')))
Directory.CreateDirectory(destFolder + zipEntry.Name.TrimStart('/'));
while (zipStream.Read(buff, 0, buff.Length) > 0) { }
}
else
{
if (!File.Exists(destFolder + zipEntry.Name.TrimStart('/')) || overwrite)
{
string dirName = System.IO.Path.GetDirectoryName(destFolder + zipEntry.Name);
if (!Directory.Exists(dirName))
{
Directory.CreateDirectory(dirName);
}
SaveFile(zipStream, destFolder + zipEntry.Name, zipEntry.Size);
}
}
}
}
finally
{
zipStream.Close();
Delete(zipFilename);
}
}
public void SaveFile(Stream stream, string fullName, long uncompressedSize)
{
if (!stream.CanRead || stream.Length <= 0) return;
FileStream fs = null;
try
{
byte[] buff = new byte[65536];
fs = new FileStream(fullName, FileMode.Create);
int res;
if (uncompressedSize > 0)
{
while ((res = stream.Read(buff, 0, buff.Length)) > 0)
fs.Write(buff, 0, res);
}
}
finally
{
if (fs != null) fs.Close();
}
}