Имеется следующий код:
string command = string.Empty;
DirectoryInfo dInfoForTesting = new DirectoryInfo(@"E:\TestFiles");
FileInfo[] files = dInfoForTesting.GetFiles();
Random rnd = new Random();
ProcessStartInfo startInfo = new ProcessStartInfo
{
WorkingDirectory = @"E:\TestFiles",
FileName = "cmd.exe",
UseShellExecute = false,
RedirectStandardInput = false
};
foreach (FileInfo file in files)
{
string rndPswd = "134";
command = "arj a -m1 -g" + rndPswd + " " + file.Name + ".arj " + file.Name;
startInfo.Arguments = command;
Process.Start(startInfo);
}
Собственно, задача состоит в том, чтобы вызывать архиватор ARJ в нужной папке через командную строку, передавать ему соответствующую команду (command) и создавать таким образом защищённый паролем архив (путь к данному архиватору уже прописан в переменной PATH, так что можно спокойной обращаться к нему через команду arj). Сама команда выглядит следующим образом:
arj a -m1 -g134 10.arj 10
где a - это создание архива -m1 - режим архивации -g134 - защитить архив паролем 134 10.arj - название архива 10 - файл, который будет заархивирован
Проблема состоит в том, что если просто в папке E:\TestFiles вызвать командную строку и в ней написать данную команду для того же файла с именем 10, то создастся архив. Но если запустить мой код, то ничего не произойдёт. Помогите разобраться, в чём проблема.
Вдруг кому поможет
Необходимо добавить в строку command либо /c, либо /k, где
/c - cmd выполняет команду и завершает работу
/k - то же самое, но продолжает работу
command = "/c arj a -m1 -g" + rndPswd + " " + file.Name + ".arj " + file.Name;
Вам не нужно вызывать командную строку, вам нужно вызвать в этой папке сам arj.exe:
ProcessStartInfo startInfo = new ProcessStartInfo
{
WorkingDirectory = @"E:\TestFiles",
FileName = "arj.exe", // или просто arj
UseShellExecute = false,
RedirectStandardInput = false
};
foreach (FileInfo file in files)
{
string rndPswd = "134";
command = "a -m1 -g" + rndPswd + " " + file.Name + ".arj " + file.Name;
startInfo.Arguments = command;
Process.Start(startInfo);
}
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости