Varios procesos en un botón.
Antes que nada, hola chicos, solo quería agregar un botón que descargue archivos zip desde un enlace y luego los descomprima, pero me encontré con problemas y obtengo este error:
“System.IO.IOException: ‘No se puede acceder al archivo ‘C:\GTA\TEST.zip’ porque está siendo utilizado por otro proceso.'”
Parece algo sencillo, pero no puedo resolverlo, así que espero que ustedes me ayuden. Este es el código:
private void button2_Click(object sender, EventArgs e)
{
string root = @"C:\GTA";
// esto si el directorio no existe
if (!Directory.Exists(root))
{
Directory.CreateDirectory(root);
}
progressBar1.Value = 0;
WebClient webcl = new WebClient();
webcl.DownloadFileCompleted += Webcl_DownloadFileCompleted;
webcl.DownloadProgressChanged += Webcl_DownloadProgressChanged;
webcl.DownloadFileAsync(new Uri("https://download1474.mediafire.com/17r5hin4vceg/izkb8vk7pudg5g4/TEST.zip"), @"C:\GTA\TEST.zip");
string targetfolder = @"C:\GTA\UNZIPEDFolder";
string sourceZipFile = @"C:\GTA\TEST.zip";
ZipFile.ExtractToDirectory(sourceZipFile, targetfolder);
}
davy.ai
El mensaje de error sugiere que el archivo ‘C:\GTA\TEST.zip’ está siendo utilizado actualmente por otro proceso, lo que impide acceder a él.
Para resolver este problema, es posible que desee modificar su código para esperar a que el archivo termine de descargarse antes de descomprimirlo. Aquí tienes una versión actualizada de tu código:
El método
DownloadFileTaskAsync
esperará a que la descarga del archivo se complete antes de continuar con la siguiente línea de código para descomprimir el archivo. Esto debería resolver el problema de que el archivo esté siendo utilizado por otro proceso.