0
나는 .NET 4.5.NET 3.5
public static void SearchZippedLogs()
{
Console.WriteLine("Searching compressed logs");
Console.WriteLine(" ");
DirectoryInfo di = new DirectoryInfo(sPath + "\\" + sDate + "\\");
FileInfo[] files = di.GetFiles("*.zip");
try
{
foreach (var file in files)
{
using (ZipArchive archive = ZipFile.OpenRead(sPath + "\\" + sDate + "\\" + file.Name))
{
foreach (ZipArchiveEntry entry in archive.Entries)
{
if (entry.FullName.EndsWith(".ininlog", StringComparison.OrdinalIgnoreCase))
{
try
{
Directory.CreateDirectory(temp);
entry.ExtractToFile(Path.Combine(temp, entry.FullName));
try
{
Stream sTemp = new FileStream(temp + "\\" + entry.FullName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
using (StreamReader sr = new StreamReader(sTemp))
{
string line;
while ((line = sr.ReadLine()) != null)
{
if (line.Contains(sTerm))
{
Console.WriteLine("{0} contains\"{1}\"", file.Name, sTerm);
if (bLog)
Logger(file.Name + " contains " + sTerm, Environment.GetEnvironmentVariable("COMPUTERNAME") + "-" + sTerm);
break;
}
}
}
}
catch (UnauthorizedAccessException ae)
{
Console.WriteLine(ae.Message);
if (bLog)
Logger(ae.Message, Environment.GetEnvironmentVariable("COMPUTERNAME") + "-" + sTerm);
}
catch (SystemException se)
{
Console.WriteLine(se.Message);
if (bLog)
Logger(se.Message, Environment.GetEnvironmentVariable("COMPUTERNAME") + "-" + sTerm);
}
catch (ApplicationException ape)
{
Console.WriteLine(ape.Message);
if (bLog)
Logger(ape.Message, Environment.GetEnvironmentVariable("COMPUTERNAME") + "-" + sTerm);
}
catch (Exception e)
{
Console.WriteLine(e.Message);
if (bLog)
Logger(e.Message, Environment.GetEnvironmentVariable("COMPUTERNAME") + "-" + sTerm);
}
}
catch (UnauthorizedAccessException ae)
{
Console.WriteLine(ae.Message);
if (bLog)
Logger(ae.Message, Environment.GetEnvironmentVariable("COMPUTERNAME") + "-" + sTerm);
}
catch (SystemException se)
{
Console.WriteLine(se.Message);
if (bLog)
Logger(se.Message, Environment.GetEnvironmentVariable("COMPUTERNAME") + "-" + sTerm);
}
catch (ApplicationException ape)
{
Console.WriteLine(ape.Message);
if (bLog)
Logger(ape.Message, Environment.GetEnvironmentVariable("COMPUTERNAME") + "-" + sTerm);
}
catch (Exception e)
{
Console.WriteLine(e.Message);
if (bLog)
Logger(e.Message, Environment.GetEnvironmentVariable("COMPUTERNAME") + "-" + sTerm);
}
finally
{
Directory.Delete(temp, true);
archive.Dispose();
}
}
}
}
}
}
문제는 우리의 서버 전용 .NET을 실행에 설치되어있는 경우 위대한 작품을 다음을 우리가 실행 3.5 인해 소프트웨어에, 나는 사용하여 같은 일을 수행 할 필요가 .NET 3.5
내가 DotNetZip 및 DeflateStream 클래스 보았다했지만 이
예상 결과 각 zip 파일의 압축을 풉니 다 .NET 3.5
이 복제 문제를 데 디렉토리에서 임시로 발견 인쇄 파일 이름은 다음그래서 내가 여기의 다음
using System;
using System.IO;
using Ionic.Zip;
namespace DotNetTest
{
class Program
{
private static string sPath;
private static string sTempLoc = Path.GetTempPath() + Path.GetRandomFileName();
static void Main(string[] args)
{
Console.WriteLine("Enter Path");
sPath = Console.ReadLine();
Console.WriteLine("Looking in " + sPath);
DirectoryInfo di = new DirectoryInfo(sPath + "\\");
FileInfo[] files = di.GetFiles("*.zip");
foreach (var file in files)
{
//Console.WriteLine(file.FullName);
using (ZipFile archive = ZipFile.Read(file.FullName))
{
foreach(ZipEntry e in archive)
{
Console.WriteLine("Extracting " + e.FileName + " to " + sTempLoc);
e.Extract(sTempLoc, ExtractExistingFileAction.OverwriteSilently);
}
}
}
Console.WriteLine("Finsihed! Press any key to exit");
Console.ReadKey();
}
}
}
이 경우 DotNetZip이 최상의 솔루션이라고 생각합니다. 그래서 귀하의 질문에 있어야합니다 : DotNetZip으로 지정된 위치로 ZIP 파일을 압축 해제하려면 어떻게해야합니까? DotNetZip 사이트에는 정확하게이 작업을 수행하는 방법을 보여주는 예제가 많이 있으므로 문제가 발생할 수있는 방법을 알지 못합니다. 어쩌면 당신은 정교 할 수 있을까요? –
요한은 나에게 몇 가지를 주려고 노력하고 정교하게 다룰 것입니다 – ondrovic
왜 여기에 그것을 반복합니까? 이 프로젝트에는 [예제 페이지] (http://dotnetzip.codeplex.com/wikipage?title=CS-Examples&referringTitle=Examples)가 있습니다. –