2

我有一个压缩文件并将它们下载到用户机器的功能。

但是,当它压缩文件时,它们位于几个文件夹中。

例如,如果我想压缩一个名为 test.doc 的文件,它位于 c:/document/the folder/test.doc

在压缩文件夹中将有“文档”文件夹和“文件夹”。我只是想要那里的文件

这是我的代码...

 public FileStreamResult DownloadDocs()
    {
        MemoryStream workStream = new MemoryStream();
        ZipFile zip = new ZipFile();
        string[] fileEntries = Directory.GetFiles(Server.MapPath(SettingManager.OnlineForms));
        foreach (string fileName in fileEntries)
        {
            FileInfo fi = new FileInfo(fileName);
            string name = Server.MapPath(SettingManager.OnlineForms + fi.Name);
            zip.AddFile(name);
        }

        zip.Save(workStream);
        workStream.Position = 0;

        FileStreamResult fileResult = new FileStreamResult(workStream, System.Net.Mime.MediaTypeNames.Application.Zip);
        fileResult.FileDownloadName = "OnlineForms.zip";

        return fileResult;
    }
4

1 回答 1

6

换行

Zip.AddFile(name);

Zip.AddFile(name, string.Empty);

您也可以避免调用获取文件信息。文件名数组就足够了。

于 2012-06-13T14:29:22.807 回答