C # MVC WebService - Zip-файл и вернуть его - PullRequest
0 голосов
/ 19 февраля 2019

У меня есть веб-сервис MVC C #, и мне нужно преобразовать строку в zip-файл с определенным именем и вернуть его.

Я собрал этот код из различных сообщений StackOverFlow, но некоторые ключевые слова не распознаются(ZipFile, CreateEntryFromFile), в то время как другие делают (ZipArchive)

string xmlReply = "This is a test";


        //Convert to bytes and encode to Base64
        Byte[] bytes = File.ReadAllBytes(xmlReply);

        //Write it back to string
        xmlReply = Convert.ToBase64String(bytes);

        //Write string to file
        string filename = @"C:\Users\Public\tr_file";
        System.IO.File.WriteAllText(filename, xmlReply);

        string fileNameZip = @"C:\Users\Public\FileR.zip";

        //Zip
        using (ZipArchive zip = ZipFile.Open(fileNameZip, ZipArchiveMode.Create))
        {
            zip.CreateEntryFromFile(filename, Path.GetFileName(filename));
        }

        //Break zip into bytes and return it
        byte[] fileBytes = System.IO.File.ReadAllBytes(fileNameZip);
        return new FileContentResult(fileBytes, "application/zip");

Можете ли вы помочь указать на ошибки или предложить другой способ их достижения?

Спасибо

EDIT : для пропущенных ключевых слов я обнаружил, что мне нужно добавить ссылку на System.IO.Compression.FileSystem

Сможет ли FileContentResult выполнить трюк и вернуть почтовый индекс?

Ответы [ 2 ]

0 голосов
/ 19 февраля 2019

Добавить:

  using System.IO.Compression;

И если это не сработает, проверьте, соответствует ли ваш целевой фреймворк как минимум 4.5.2

0 голосов
/ 19 февраля 2019

Ваш код выглядит почти так же, как пример на этой странице

using System;
using System.IO;
using System.IO.Compression;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            string zipPath = @"c:\users\exampleuser\start.zip";
            string extractPath = @"c:\users\exampleuser\extract";
            string newFile = @"c:\users\exampleuser\NewFile.txt";

            using (ZipArchive archive = ZipFile.Open(zipPath, ZipArchiveMode.Update))
            {
                 archive.CreateEntryFromFile(newFile, "NewEntry.txt");
                 archive.ExtractToDirectory(extractPath);
            } 
        }
    }
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...