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 に答える