SSB_HighSpeed_Modem/oscardata/oscardata/zip.cs

72 lines
2.2 KiB
C#
Executable File

using System;
using System.IO;
using System.IO.Compression;
namespace oscardata
{
public class ZipStorer
{
public String unzipFile(String zipfilename)
{
try
{
using (var zip = ZipFile.Open(zipfilename, ZipArchiveMode.Read))
{
// create a temporary subfolder (delete if exists)
String pth = statics.addTmpPath("modemzip");
try
{
Directory.Delete(pth, true);
}
catch { }
Directory.CreateDirectory(pth);
// extract the ZIP into this subfolder
zip.ExtractToDirectory(pth);
// search file in this folder and move it to: unzipped_RXtempfilename
String[] files = Directory.GetFiles(pth);
foreach (String s in files)
{
if (s[0] != '.') // ignore path entries
{
return s;
}
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
return null;
}
// zipfilename ... name of xyz.zip file
// filename ... name of file inside the zip file (with or without path, as required)
// FullPath ... pathname+filename of the file to be included in the zip
// returns: size of zip file
public long zipFile(String zipfilename, String filename, String FullPath)
{
try
{
statics.FileDelete(zipfilename);
}
catch { }
try
{
using (var zip = ZipFile.Open(zipfilename, ZipArchiveMode.Create))
{
zip.CreateEntryFromFile(FullPath, filename);
}
return statics.GetFileSize(zipfilename);
}
catch { }
return 0;
}
}
}