【发布时间】:2022-01-20 06:13:11
【问题描述】:
我们正在尝试使用 C# Ionic zip 库保存 zip 文件。但它似乎给出了找不到文件的错误。
System.IO.FileNotFoundException: 'Could not find file 'PhysicalPath\JobPortal\Job\DownLoadSelectedFiles'.'
代码如下:
public ActionResult DownLoadSelectedFiles(string applicantIds)
{
List<ApplicantList> listapplicant = _applicantBl.GetFileNames(applicantIds);
MemoryStream ms = new MemoryStream();
using (ZipFile zip = new ZipFile())
{
foreach (ApplicantList t in listapplicant)
{
//t.FileName is relative path
zip.AddFile(Server.MapPath(t.FileName),"CVs");
}
zip.Save(ms); // this line generates error
}
ms.Seek(0, SeekOrigin.Begin);
return File(ms.ToArray(), "application/zip");
}
任何帮助表示赞赏
【问题讨论】:
-
Server.MapPath将逻辑目录映射到物理目录路径。它不会将相关文件名(相对于什么?)映射到绝对文件系统路径。 -
我认为您的行 Server.MapPath(t.FileName) 没有给出您期望的值。尝试将其输出到控制台或添加手表
-
@KlausGütter 这是一个 MVC 应用程序,文件存储在 Web 应用程序的根文件夹中。据我了解, zip.add 的第一个参数是我们要添加的文件的路径。如果我弄错了,请指导\
-
server.mappath 给 C:\AppPath\JobPortal\Images\ApplicantResume\637750273214460912.pdf
标签: c# asp.net-mvc ionic-zip