【实例简介】
【实例截图】
【核心代码】
using System;
using System.IO;
using ICSharpCode.SharpZipLib.Zip;
using ICSharpCode.SharpZipLib.Core;
namespace Samples.FastZipDemo
{
class MainClass
{
enum Operation
{
Unknown,
Create,
Extract,
List,
Error
};
static void ListZipFile(string fileName, string fileFilter, string directoryFilter)
{
using (ZipFile zipFile = new ZipFile(fileName)) {
PathFilter localFileFilter = new PathFilter(fileFilter);
PathFilter localDirFilter = new PathFilter(directoryFilter);
if ( zipFile.Count == 0 ) {
Console.WriteLine("No entries to list");
}
else {
for ( int i = 0 ; i < zipFile.Count; i)
{
ZipEntry e = zipFile[i];
if ( e.IsFile ) {
string path = Path.GetDirectoryName(e.Name);
if ( localDirFilter.IsMatch(path) ) {
if ( localFileFilter.IsMatch(Path.GetFileName(e.Name)) ) {
Console.WriteLine(e.Name);
}
}
}
else if ( e.IsDirectory ) {
if ( localDirFilter.IsMatch(e.Name) ) {
Console.WriteLine(e.Name);
}
}
else {
Console.WriteLine(e.Name);
}
}
}
}
}
void ListFile(object sender, ScanEventArgs e)
{
Console.WriteLine("{0}", e.Name);
}
void ListDir(object sender, DirectoryEventArgs e)
{
if ( !e.HasMatchingFiles ) {
Console.WriteLine("Dir:{0}", e.Name);
}
}
void ListFileSystem(string directory, bool recurse, string fileFilter, string directoryFilter)
{
FileSystemScanner scanner = new FileSystemSca