, поэтому у меня есть небольшой фрагмент кода, который обнаруживает файлы в папке и систематически застегивает их после достижения определенного возраста. Теперь я работаю над фрагментом кода, чтобы разархивировать файлы определенного диапазона дат по запросу пользователя для использования в программном обеспечении.распакуйте файл в C# через Winzip и его расширение cmd
Моя проблема в том, что строка командной строки для zip-файлов отлично работает, но unzip не ... ниже - это фрагмент кода, показывающий, как я разархивирую, пожалуйста, дайте мне знать, что я должен делать по-другому, чтобы обеспечить распаковку , благодаря!
private void UnZipFile()
{
if (myRecord == null)
{
if (File.Exists(zipInfo.FullName))
{
Process LogUnzipper = new Process();
//32-bit system
if (File.Exists("c:\\Program Files\\WinZip\\WZZIP.exe"))
{
//WZZIP.exe being the WinZip executable
LogUnzipper.StartInfo.FileName = "c:\\Program Files\\WinZip\\WZZIP.exe";
}
//64-bit system
else if (File.Exists("c:\\Program Files (x86)\\WinZip\\WZZIP.exe"))
{
//WZZIP.exe being the WinZip executable
LogUnzipper.StartInfo.FileName = "c:\\Program Files (x86)\\WinZip\\WZZIP.exe";
}
//here is where I think I'm screwing up something..
string action = "-e " + "\"" + zipInfo.FullName + "\"" + " \"" + zipInfo.DirectoryName + "\"";
//happen in background
LogUnzipper.StartInfo.CreateNoWindow = true;
LogUnzipper.StartInfo.UseShellExecute = false;
LogUnzipper.StartInfo.Arguments = action;
LogUnzipper.Start();
while (!LogUnzipper.HasExited)
{
LogUnzipper.WaitForExit(500);// 1/2 sec
}
//adding break point at this line yields no unzipped Log file :(
}
...
мои мысли, что я как-то называть ЦМД неправильно в string action
? даже если я проверю его в командной строке Windows, это правильное форматирование.
*** Следует отметить, что ZipInfo.FullName является чем-то вроде ex: «C: \ Users \ 16208 \ Software \ Beta \ logs \ 6_2013 \ Log_10AM_to_11AM.zip» до формы, поэтому я даю точный путь к застрявшему предмету.
Используйте настоящую библиотеку C# ZIP. – SLaks
объясните, пожалуйста. – DarthSheldon
@DarthSheldon Существует несколько библиотек .NET zip, таких как [DotNetZip] (http://dotnetzip.codeplex.com/) и [SharpZipLib] (http://www.icsharpcode.net/opensource/sharpziplib/). Оба этих варианта предпочтительнее запускать WinZip (не в последнюю очередь потому, что у конечного пользователя не установлен WinZip). – keyboardP