public class ZipOperation
{
public static bool extractFile(string zipFileName, string targetDirectory)
{
if (!File.Exists(zipFileName))
{
Console.WriteLine("Cannot find file '{0}'", zipFileName);
return false;
}
string currentDir = System.IO.Directory.GetCurrentDirectory();
using (ZipInputStream s = new ZipInputStream(File.OpenRead(zipFileName)))
{
Directory.SetCurrentDirectory(targetDirectory);
ZipEntry theEntry;
while ((theEntry = s.GetNextEntry()) != null)
{
Console.WriteLine(theEntry.Name);
string directoryName = Path.GetDirectoryName(theEntry.Name);
string fileName = Path.GetFileName(theEntry.Name);
// create directory
if (directoryName.Length > 0)
{
Directory.CreateDirectory(directoryName);
}
if (fileName != String.Empty)
{
using (FileStream streamWriter = File.Create(theEntry.Name))
{
int size = 2048;
byte[] data = new byte[2048];
while (true)
{
size = s.Read(data, 0, data.Length);
if (size > 0)
{
streamWriter.Write(data, 0, size);
}
else
{
break;
}
}
}
}
}
}
Directory.SetCurrentDirectory(currentDir);
return true;
}
}
public static byte[] StringToByteArray(string str)
{
System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();
return encoding.GetBytes(str);
}
string input = "125jhoi353kimjinwook";
Regex ex = new Regex("kim");
Match m = ex.Match(input);
if ( m.Success )
{
Console.WriteLine("ok");
for ( int i=0; i<m.Groups.Count; ++i )
{
Console.WriteLine("group : " + m.Groups[i]);
}
}
else
{
Console.WriteLine("failed");
}