System.IO.FileNotFoundException: ‘No se pudo encontrar el archivo ‘C:\Program Files (x86)\IIS Express\files’.’
public HttpResponseMessage DownloadZipFile(List
{
HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK);
using (ZipFile zip = new ZipFile())
{
zip.AlternateEncodingUsage = ZipOption.AsNecessary;
zip.AddDirectoryByName("Files");
foreach (FileModel file in files)
{
if (file.IsSelected)
{
byte[] fileBytes = System.IO.File.ReadAllBytes("files");
string s = Convert.ToBase64String(fileBytes);
zip.AddFile(file.FilePath, "Files");
}
}
}
}
Detalles del error
System.IO.FileNotFoundException HResult=0x80070002 Message=No se pudo encontrar el archivo ‘C:\Program Files (x86)\IIS Express\files’. Source=
StackTrace:
Esta excepción fue originada en esta pila de llamadas:
[Código Externo]
ZIpFile_Creation_API.Controllers.ZipAPIController.DownloadZipFile(System.Collections.Generic.List<zipfile_creation_api.models.filemodel>) en ZipAPIController.cs
[Código Externo]</zipfile_creation_api.models.filemodel>
davy.ai
Q: ¿Cuál es el problema reportado en este mensaje de error?
El mensaje de error informa que el programa no pudo encontrar el archivo ‘C:\Program Files (x86)\IIS Express\files’.
Q: ¿Qué línea de código causó el error?
La línea de código que causó el error es
byte[] fileBytes = System.IO.File.ReadAllBytes("files");
.Q: ¿Cuál es el propósito del método DownloadZipFile?
El propósito del método DownloadZipFile es crear un archivo zip que contenga los archivos seleccionados de una lista de FileModels.
Q: ¿Cómo solucionarías este error?
Para solucionar este error, necesitamos especificar la ruta de archivo correcta para cada archivo en la lista de FileModels.
En lugar de usar
"files"
como la ruta de archivo, debemos usarfile.FilePath
para leer los bytes del archivo correspondiente.Aquí está el código corregido:
“` files)
public HttpResponseMessage DownloadZipFile(List
{
HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK);
}
“`