استخراج فایل فشرده در ASP.net MVC بعد از آپلود

استخراج فایل فشرده در ASP.net MVC بعد از آپلود

فرض کنید نیاز دارید بعد از آپلود یک فایل Zip آن را در سرور اکسترکت کنید تا از محتویات آن استفاده کنید. ما در این مقاله به بحث استخراج فایل فشرده در ASP.net MVC می‌پردازیم. برای استفاده از فایل‌های فشرده‌ شده، باید ابتدا از حالت فشردگی خارج شوند. این کار با استفاده از ۲ کلاس GZipStream و DeflateStream به راحتی امکان پذیر است. مانند بالا اول با استفاده از GZipStream فایل را از حالت فشردگی خارج می‌کنیم. دقت داشته باشید که با همان روشی که فایل رو فشرده کردید باید از فشردگی خارج کنید در غیر این صورت به خطا برمی‌خورید. مثلاً اگر با GZipStream فایلی را فشرده کرده‌اید٬ با همان GZipStream باید فایل را استخراج‌کنید.

 

استخراج فایل فشرده در ASP.net MVC بعد از آپلود

 

مراحل استخراج فایل فشرده یه زبان #C

 

static void Main(string[] args)
{
    try
    {
        FileStream stream = new FileStream(@"C:\compressfile.txt",
            FileMode.Open, FileAccess.Read);

        GZipStream gzip = new GZipStream(stream, CompressionMode.Decompress);

        StreamReader reader = new StreamReader(gzip);
        string contents = reader.ReadToEnd();
        reader.Close();

        Console.WriteLine(contents);

        Console.ReadLine();

    }
    catch (IOException ex)
    {
        Console.WriteLine(ex.Message);
    }
}

 

این مطلب را از دست ندهید: آپلود فایل با Ajax در ASP.net mvc بوسیله File Upload

 

  • ابتدا در خط ۶ و ۷ یک FileStream ساخته شده است که به فایل فشرده شده اشاره دارد.
  • از مقادیر FileMode.Open و FileAccess.Read استفاده شده است تا بتوان فایل را باز کرد و فقط خواند.
  • یک GZipStream ساخته و به پارامتر دوم مقدار CompressionMode.Decompress دادیم تا فایل را از حالت فشرده خارج کند.
  • GZipStream ساخته شده را در خط ۱۱ به StreamReader ارسال کرده تا محتوای فایل خوانده شود.
  • در خط ۱۲ از متد ReadToEnd استفاده کردیم تا محتوای فایل تا آخر خوانده شود و به رشته تبدیل گردد و در متغیر contents ریخته شود و در آخر contents رو چاپ گردید.

 

در کد زیر نحوه استفاده از DeflateStream قرار گرفته است :

 

static void Main(string[] args)
{

    try
    {
        FileStream stream = new FileStream(@"C:\compressedFile.txt",
            FileMode.Open, FileAccess.Read);

        DeflateStream deflate = new DeflateStream(stream, CompressionMode.Decompress);

        StreamReader reader = new StreamReader(deflate);
        string contents = reader.ReadToEnd();
        reader.Close();

        Console.WriteLine(contents);

    }
    catch (IOException ex)
    {
        Console.WriteLine(ex.Message);
    }
}

از اینکه فرازگر را در این مقاله همرایی کردید از شما سپاسگذاریم.

مقاله پیشنهادی :

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *