es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

System.IO.FileNotFoundException: ‘No se pudo encontrar el archivo ‘C:\Program Files (x86)\IIS Express\files’.’

public HttpResponseMessage DownloadZipFile(List files)
{
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>

Tags:  , ,

Answer

  1. Avatar for 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 usar file.FilePath para leer los bytes del archivo correspondiente.

    Aquí está el código corregido:

    “`
    public HttpResponseMessage DownloadZipFile(List files)
    {
    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(file.FilePath);
                string s = Convert.ToBase64String(fileBytes);
    
                zip.AddFile(file.FilePath, "Files");
            }
        }
    }
    

    }
    “`

Comments are closed.