7-Zip 7za Командная строка не может найти указанный файл - PullRequest
2 голосов
/ 12 сентября 2011

У меня есть программа на C #, использующая 7za.exe, чтобы проверить zip-архив с помощью команды "l", а затем извлечь его с помощью команды "e".Информацию о командной строке 7-Zip можно найти по адресу: http://www.dotnetperls.com/7-zip-examples

Я могу запустить программу со своего рабочего стола на сервере, и она отлично работает, однако при запуске ее непосредственно на сервере это дает следующее исключение:"Система не может найти указанный файл".Я проверил, что путь к файлу правильный и передается 7za.exe.Я вложил 7za.exe в качестве встроенного ресурса в свой проект и не уверен, почему он не может найти файлы?Есть идеи?Спасибо!

Вот код, который я должен проверить, я могу открыть zip-архив и в основном то же самое, чтобы распаковать архив, за исключением того, что я являюсь е.

Process l = new Process();
l.StartInfo.FileName = "7za.exe";
l.StartInfo.Arguments = "l " + filePath[i];
l.StartInfo.WindowStyle = ProcessWindowStyle.Normal;
l.EnableRaisingEvents = true;
l.StartInfo.UseShellExecute = false;
l.StartInfo.RedirectStandardOutput = true;
l.Start(); // This is were it throuws the exception because it can't find the file.
// Do stuff to verify zip archive is not corrupt
l.WaitForExit();

Пример: filePath [i]= C: \ Users \ Me \ Desktop \ ZipFile.zip

1 Ответ

1 голос
/ 12 сентября 2011

«Встроенный ресурс» может использоваться только с API ресурсов .NET, он не создает отдельные файлы и не может быть найден обычными функциями Windows, такими как CreateProcess (что и используется Process.Start ).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...