Torna al Thread
Process rar = new Process();
string fileDaAggiungere = "\"C:\\file.txt\"";
string zipFile = "\"C:\\archivio.zip\"";
rar.StartInfo.FileName = Environment.GetEnvironmentVariable("ProgramFiles") + @"\WinRAR\WinRar.exe";
//Aggiunge i file all'archivio, eseguendo il lavoro in background
//e disabilitando i messaggi di errore
rar.StartInfo.Arguments = "a -IBCK -INUL " + zipFile + " " + fileDaAggiungere;
//Avvia il processo
rar.Start();
//Attende che il processo termini
rar.WaitForExit();
//Verifica il codice di uscita
//vedi qui: http://acritum.com/winrar/manual/index.html?html_helpcommandlinesyntax.htm
switch (rar.ExitCode)
{
//Se il codice è 0, l'operazione ha avuto successo
case 0:
MessageBox.Show("Operazione completata");
break;
//Se è 1, c'è stato un avviso (ad esempio quando il formato non è valido)
case 1:
//In questo caso elimina il file precedente e riesegue l'operazione
if (File.Exists(zipFile))
{
File.Delete(zipFile);
//Riesegue l'operazione
rar.Start();
rar.WaitForExit();
if (rar.ExitCode == 0)
MessageBox.Show("Operazione completata");
else
MessageBox.Show("Errore non previsto");
}
break;
//Altri errori:
default:
MessageBox.Show("Errore non previsto");
break;
}