استخراج فایل فشرده در ASP.net MVC بعد از آپلود
فرض کنید نیاز دارید بعد از آپلود یک فایل Zip آن را در سرور اکسترکت کنید تا از محتویات آن استفاده کنید. ما در این مقاله به بحث استخراج فایل فشرده در ASP.net MVC میپردازیم. برای استفاده از فایلهای فشرده شده، باید ابتدا از حالت فشردگی خارج شوند. این کار با استفاده از ۲ کلاس GZipStream
و DeflateStream
به راحتی امکان پذیر است. مانند بالا اول با استفاده از GZipStream فایل را از حالت فشردگی خارج میکنیم. دقت داشته باشید که با همان روشی که فایل رو فشرده کردید باید از فشردگی خارج کنید در غیر این صورت به خطا برمیخورید. مثلاً اگر با GZipStream فایلی را فشرده کردهاید٬ با همان GZipStream باید فایل را استخراجکنید.
مراحل استخراج فایل فشرده یه زبان #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); } }
از اینکه فرازگر را در این مقاله همرایی کردید از شما سپاسگذاریم.