নেট থেকে প্রোগ্রামিতভাবে ফাইল আনজিপ করুন


220

আমি জিপড ফাইলটি অগ্রগতিতে আনজিপ করার চেষ্টা করছি।

আমি System.IO.Compression.GZipStreamনেট থেকে ক্লাসটি ব্যবহার করার চেষ্টা করেছি , কিন্তু যখন আমার অ্যাপটি চালিত হয় (আসলে একটি ইউনিট পরীক্ষা) আমি এই ব্যতিক্রমটি পাই:

System.IO.In अवैधDataException: GZip শিরোনামে ম্যাজিক নম্বরটি সঠিক নয়। নিশ্চিত হয়ে নিন যে আপনি একটি জিজেপ স্ট্রিমে যাচ্ছেন ..

আমি এখন বুঝতে পেরেছি যে কোনও .zipফাইল কোনও ফাইলের মতো নয় .gzএবং এটি এর GZipমতো নয় Zip

যাইহোক, আমি যেহেতু জিপ করা ফাইলটিতে ম্যানুয়ালি ক্লিক করে এবং তারপরে "সমস্ত ফাইলগুলি এক্সট্রাক্ট" -বাটন ক্লিক করে ফাইলটি বের করতে সক্ষম হয়েছি, আমি মনে করি কোডটিতেও এটি করার একটি উপায় থাকা উচিত।

তাই আমি Process.Start()ইনপুট হিসাবে জিপ করা ফাইলটির পথটি ব্যবহার করার চেষ্টা করেছি । এটি আমার অ্যাপ্লিকেশনটির জন্য একটি উইন্ডো খুলতে জিনযুক্ত ফাইলের সামগ্রীগুলি দেখায় causes সব ঠিক আছে, তবে অ্যাপ্লিকেশনটি "সমস্ত ফাইলগুলি এক্সট্র্যাক্ট"-বাটন ক্লিক করতে আশেপাশে নেই এমন একটি সার্ভারে ইনস্টল করা হবে।

সুতরাং, আমি কীভাবে আমার অ্যাপ্লিকেশনটি জিপ করা ফাইলগুলিতে ফাইলগুলি বের করতে পারি?

নাকি এটি করার অন্য কোনও উপায় আছে? আমি কোনও তৃতীয় পক্ষের লাইব্রেরি বা অ্যাপ্লিকেশনগুলি ডাউনলোড না করে কোডে এটি করা পছন্দ করি; সুরক্ষা বিভাগ সে সম্পর্কে খুব অভিনব নয় ...


12
আপনার সুরক্ষা বিভাগটি এমন কোনও লাইব্রেরি ব্যবহার করে ডিবাগ করা এবং সম্ভবত অনেকগুলি চোখের দ্বারা দেখার চেয়ে নিজের জন্য নিজের কোড লেখার সাথে আরও আনন্দিত? আপনি একটি লাইব্রেরি ব্যবহার করতে পারেন এবং "কোডে এটি করুন" (উত্সটি পান এবং এটি নিজেই সংকলন করুন) তবে আমি চেষ্টা করেছি এবং সত্যিকারের লাইব্রেরি ব্যবহার করে যে কোনও সুরক্ষা সমস্যা নিয়ে আসা হয়েছে তার চেয়ে চাকাটিকে পুনরায় উদ্বেগ দেখানো।
জারেড আপডেটে 20

10
@ জ্যারেড - যখন ম্যানেজমেন্ট তাদের মাথায় ধারণা পায় ...
স্টিভেন ইভার্স

4
তৃতীয় পক্ষের পণ্য পেলে সুরক্ষা বিভাগের জন্য ঝুঁকি কম থাকে। স্রেফ ডটনেজিপ ডাউনলোড করুন এবং এর নাম পরিবর্তন করুন "[সংস্থার নাম ]োকান] .ziplibrary.dll"
সাইমন

উত্তর:


58

আমরা অনেক প্রকল্পে সাফল্যময় জিপলিব সফলভাবে ব্যবহার করেছি । আমি জানি এটি একটি তৃতীয় পক্ষের সরঞ্জাম, তবে উত্স কোডটি অন্তর্ভুক্ত রয়েছে এবং আপনি যদি এখানে চক্রটি পুনরায় উদ্ভাবন করতে চান তবে কিছু অন্তর্দৃষ্টি সরবরাহ করতে পারে।


3
আমি শার্পজিপলিব ব্যবহার করার চেষ্টা করেছি এবং এটি দুর্দান্ত কাজ করেছে। আমার ধারণা, তৃতীয় পক্ষের লিপস এবং এপিএসের বিরুদ্ধে নিষেধাজ্ঞার কোনও কঠোর নিয়ম বা কোনও গাইডলাইন বেশি কিনা তা আমাকে দেখতে হবে।
পেটারি

9
আমি আপনার সংস্থা সম্পর্কে জানি না, তবে আমার অভিজ্ঞতা সর্বদা এটি ছিল যে আপনি কেন ব্যতিক্রম চান তার ব্যবসায়ের ক্ষেত্রে বিবরণ লিখলে যদি এই ধরণের নিয়মের ব্যতিক্রম পাওয়া সম্ভব । ব্যয় সাশ্রয় বনাম ডিআইওয়াই, পাশাপাশি উত্সটি পরীক্ষা করা যেতে পারে তাও নির্দেশ করুন। ফ্যালব্যাক হিসাবে, আপনি প্রায়শই উত্সটি ব্যবহারের অনুমতি পেতে পারেন এমনকি যদি তারা আপনাকে ডেল ব্যবহার করতে না দেয় - তবে কেবল এটি নিজেই সংকলন করুন (বা কমপক্ষে আপনার যে অংশগুলি আসলে ব্যবহারের প্রয়োজন ...)।
রোল্যান্ডটাম্বল

জিপ ফাইলগুলি সঙ্কুচিত করতে আপনাকে বাহ্যিক লাইব্রেরি ব্যবহার করতে হবে না, আপনি সিস্টেম 32 থেকে শেল 32 ব্যবহার করতে পারেন। দয়া করে দেখুন stackoverflow.com/a/43066281/948694
arturn

489

সঙ্গে .NET 4.5 আপনি যা করতে পারেন .NET পরিকাঠামোকে ব্যবহার করে এখন আনজিপ ফাইল:

using System;
using System.IO;

namespace ConsoleApplication
{
  class Program
  {
    static void Main(string[] args)
    {
      string startPath = @"c:\example\start";
      string zipPath = @"c:\example\result.zip";
      string extractPath = @"c:\example\extract";

      System.IO.Compression.ZipFile.CreateFromDirectory(startPath, zipPath);
      System.IO.Compression.ZipFile.ExtractToDirectory(zipPath, extractPath);
    }
  }
}

উপরের কোডটি মাইক্রোসফ্টের ডকুমেন্টেশন থেকে সরাসরি নেওয়া হয়েছিল: http://msdn.microsoft.com/en-us/library/ms404280(v=vs.110).aspx

ZipFileসমাবেশে রয়েছে System.IO.Compression.FileSystem। (ধন্যবাদ নাটিয়ারভিন ... নীচে মন্তব্য দেখুন)


118
বিটিডাব্লু, ZipFileবিধানসভায় অন্তর্ভুক্ত System.IO.Compression.FileSystem
নাতিরভিন

73
যার অর্থ আপনার কাঠামো সমাবেশে একটি ডিএলএল রেফারেন্স যুক্ত করা দরকার System.IO.Compression.FileSystem.dll
ক্রিস শিফহাউয়ার

.rar ফাইল সম্পর্কে কি। উপরের কোড .ਆਰর ফাইলগুলি বের করতে ব্যর্থ।
রঘু

1
আমি এটি আমার এসপ নেট কোর ওয়েব এপিআইতে চেষ্টা করে দেখলাম, এটি প্রথম এন্ট্রি জরিমানা পড়েছে, তবে দ্বিতীয় এন্ট্রিতে এটি সর্বদা ত্রুটি দেয় A local file header is corrupt। এই যাইহোক?
সফটসান

@ সফটসানের সাথে একই। আমি যে ত্রুটি পেয়েছিলাম। কি করো?
ধনী

101

। নেট 4.5+ এর জন্য

এটি সর্বদা সঙ্কুচিত ফাইলটি ডিস্কে লেখার ইচ্ছা হয় না। একজন এএসপি.নেট বিকাশকারী হিসাবে, আমাকে ফাইল সিস্টেমে লেখার জন্য আমার অ্যাপ্লিকেশনটির অধিকার দেওয়ার অনুমতি নিয়ে ফিড করতে হবে। মেমরির স্ট্রিমগুলির সাথে কাজ করে, আমি এগুলি সব পাশ দিয়েই ফেলা এবং সরাসরি ফাইলগুলি পড়তে পারি:

using (ZipArchive archive = new ZipArchive(postedZipStream))
{
    foreach (ZipArchiveEntry entry in archive.Entries)
    {
         var stream = entry.Open();
         //Do awesome stream stuff!!
    }
}

বিকল্পভাবে, আপনি কল করে ডিকম্প্রেসড ফাইলটি ডিস্কের বাইরে লিখতে পারেন ExtractToFile():

using (ZipArchive archive = ZipFile.OpenRead(pathToZip))
{
    foreach (ZipArchiveEntry entry in archive.Entries)
    {
        entry.ExtractToFile(Path.Combine(destination, entry.FullName));
    }
} 

ZipArchiveক্লাসটি ব্যবহার করতে , আপনাকে System.IO.Compressionনেমস্পেসের সাথে একটি রেফারেন্স যুক্ত করতে হবে System.IO.Compression.FileSystem


8
নেটিভ ডিকম্প্রেসার যুক্ত করতে এটি কি 4.5% অবধি সত্যিই এমএসএফটি নিয়েছে?
জন পিটারস 21

2
@JohnPeters GZipStream নেট 2.0 (ফিরে যোগ করা হয়েছিল msdn.microsoft.com/en-us/library/... )। তবে মেমরিতে একটি সংরক্ষণাগারে একাধিক ফাইলের সাথে কাজ করা সহজ করে নি। নতুন ZipArchiveবস্তুটি বিলটি সুন্দরভাবে ফিট করে।
মিস্টার এপিক

1
এটি একটি বিশেষ বিকল্প কারণ এটি ফাইল-সিস্টেমটি ব্যবহার না করে আনজিপিংয়ের অনুমতি দেয় (আমার ক্ষেত্রে আমি এমবেডেড সংস্থান নিয়ে কাজ করছি), এবং এটি তৃতীয় পক্ষের এক্সটেনশনও নয়।
এভিনিস

1
যখন আমি কেবল ব্যবহার করতে পারি তখন কেন আমি একটি foreachলুপ ব্যবহার ExtractToFileকরব ZipFile.ExtractToDirectory(inputFile, outputDir);? প্রথম পদ্ধতির সুবিধা কী?
ফ্লফি রোবট

1
নেট 4..6.১ এ আমি 'সিস্টেম.আইও.কম্পেশন.ফাইসিসটেম', কোনও আইডিয়া থেকে 'জিপআরচাইভ' পেতে সক্ষম নই?
রবি আনন্দ

55

বিনামূল্যে এবং কোনও বাহ্যিক ডিএলএল ফাইল নেই। সবকিছুই একটি সিএস ফাইলে রয়েছে। একটি ডাউনলোড হ'ল সিএস ফাইল, অন্য ডাউনলোডটি খুব সহজে বোঝার উদাহরণ। আজই এটি চেষ্টা করে দেখেছি সেটআপটি কত সহজ ছিল তা আমি বিশ্বাস করতে পারি না। এটি প্রথম চেষ্টা করে কাজ করেছিল, কোনও ত্রুটি নেই, কিছুই নয়।

https://github.com/jaime-olivares/zipstorer


খুব তাড়াতাড়ি কথা বলেছেন! আমি তাত্ক্ষণিকভাবে একটি ডাউনলোড ডাউনলোড স্ট্রিম থেকে ফাইলগুলি স্ফীত করতে চাই। এটি স্ট্রিমটিতে অনুসন্ধানের কাজগুলি ব্যবহার করার পরে এটি কাজ করে না :( ভাল, উত্স কোডটির জন্য ধন্যবাদ আমি এখন নিজের জিপস্ট্রিমটিই লিখতে পারি ...
ওয়োফান্ত

আমার সমস্যার সর্বোত্তম সমাধান, যেহেতু আমি একটি আপডেটেটর অ্যাপ লিখছি এবং আমি এক্সট্রাকশন প্রক্রিয়ায় যে কোনও ডিএলএল জড়িত করতে পারি না তার পরে আমাকে সেগুলিও আপডেট করতে হবে .... এটি আপনাকে ধন্যবাদ! ধন্যবাদ!
নিক্লাস

27

Http://www.codeplex.com/DotNetZip এ ডটনেটজিপ লাইব্রেরিটি ব্যবহার করুন

জিপ ফাইলগুলি পরিচালনা করার জন্য বর্গ গ্রন্থাগার এবং সরঞ্জামসেট। জিপ ফাইলগুলি সহজেই তৈরি করতে, এক্সট্রাক্ট করতে বা আপডেট করতে ভিবি, সি # বা যে কোনও। নেট ভাষা ব্যবহার করুন ...

ডটনেটজিপ পুরো .NET ফ্রেমওয়ার্ক সহ পিসিগুলিতে কাজ করে এবং .NET কমপ্যাক্ট ফ্রেমওয়ার্ক ব্যবহার করে এমন মোবাইল ডিভাইসগুলিতেও চালিত হয়। ভিবি, সি #, বা কোনও। নেট ভাষা, বা কোনও স্ক্রিপ্টিং পরিবেশে জিপ ফাইলগুলি তৈরি এবং পড়ুন ...

আপনার সমস্ত কিছু যদি ডিফল্ট স্ট্রিম বা জিজেপস্ট্রিম ক্লাসটি অন্তর্নির্মিত। নেট বিসিএল-র প্রতিস্থাপনের জন্য হয় তবে ডটনেটজিপও আছে। ডটনেটজিপের ডিফলট স্ট্রিম এবং জিজেপস্ট্রিম জেলিব .NET পোর্টের উপর ভিত্তি করে একটি স্বতন্ত্র সমাবেশে উপলভ্য in এই স্ট্রিমগুলি সংকোচনের স্তরগুলিকে সমর্থন করে এবং অন্তর্নির্মিত ক্লাসগুলির চেয়ে অনেক ভাল পারফরম্যান্স সরবরাহ করে। সেটটি সম্পন্ন করার জন্য একটি জ্লিবস্ট্রিমও রয়েছে (আরএফসি 1950, 1951, 1952) ...


1
হুমমম ... তবে এটি তৃতীয় পক্ষের লাইব্রেরি!
পেটারি

30
আপনি কতটা পর্যবেক্ষক। আপনার নিজের জিপ ফাইল রিডার বাস্তবায়ন করার জন্য কয়েক মাস ব্যয় করার মতো অনুভূতি না থাকলে এটি আপনার সেরা বিকল্প।
স্যাম অ্যাক্স 21

এই একটি শার্পজাইপলিবের চেয়ে ভাল
কুগেল

5
আপনি আমাকে প্রায় 5 বছরের পুরানো উত্তর সম্পর্কে প্রশ্ন জিজ্ঞাসা করছেন। কিছু ভাবো. আমি নিশ্চিত আপনি একটি উত্তর পাবেন।
স্যাম এক্স

2
@ ফিলকোপার এটি একটি পুরানো প্রশ্ন যা আমি অন্তর্নির্মিত সিস্টেম.আইও.কম্পেশন.জাইপ ফাইল ব্যবহার করার পরামর্শ দিই। আইআইআরসি উড়তে হাজার হাজার জিপ উত্পাদন করার আমার অভিজ্ঞতার ভিত্তিতে অতীতে শার্পজাইপলিবের সাথে আমার সত্যিই খারাপ অভিজ্ঞতা ছিল।
কুগেল

9
String ZipPath = @"c:\my\data.zip";
String extractPath = @"d:\\myunzips";
ZipFile.ExtractToDirectory(ZipPath, extractPath);

জিপফাইলে ক্লাসটি ব্যবহার করতে, আপনাকে অবশ্যই আপনার প্রকল্পে সিস্টেম.আইও.কম্পেশন.ফাইলে সিস্টেম সমাবেশে একটি রেফারেন্স যুক্ত করতে হবে



2

স্ট্যান্ডার্ড জিপ ফাইলগুলি সাধারণত ডিফল্ট অ্যালগরিদম ব্যবহার করে।

তৃতীয় পক্ষের লাইব্রেরি ব্যবহার না করেই ফাইলগুলি আহরণের জন্য DeflateStream ব্যবহার করুন। মাইক্রোসফ্ট কেবল সংক্ষেপণ অ্যালগরিদম সরবরাহ করার কারণে আপনার জিপ ফাইল সংরক্ষণাগার ফর্ম্যাট সম্পর্কে আরও কিছু তথ্যের প্রয়োজন হবে।

আপনি zipfldr.dll ব্যবহার করার চেষ্টা করতে পারেন। এটি মাইক্রোসফ্টের সংকোচনের গ্রন্থাগার (মেনুতে প্রেরণে সংযুক্ত ফোল্ডার)। এটি একটি কম লাইব্রেরি বলে মনে হচ্ছে তবে এটি অনথিভুক্ত। আপনি এটি পরীক্ষার মাধ্যমে আপনার জন্য কাজ করতে সক্ষম হতে পারেন।


আমি ডিফলটস্ট্রিম ক্লাস চেষ্টা করছি। এবার আমি System.IO.In अवैधDataException পাই: ব্লকের দৈর্ঘ্য এর পরিপূরকের সাথে মেলে না ..
পেটারি

আমি উপরে বলেছি, মাইক্রোসফ্ট কেবলমাত্র অ্যালগরিদম সরবরাহ করেছিল। আপনার জিপ সংরক্ষণাগার বিন্যাসেও তথ্য প্রয়োজন। en.wikedia.org/wiki/ZIP_(file_format) আপনার শুরু করা উচিত। আরও বিস্তারিত তথ্যের লিঙ্কগুলির জন্য পৃষ্ঠার নীচে উল্লেখগুলি দেখুন।
কেনেথ কোচরান

2
আমি .NET 3.5 তে অ্যাক্রোসড সিস্টেম.আইও.প্যাকেজিং.প্যাকেজকে হোঁচট খেয়েছি। দেখে মনে হচ্ছে এটি কৌশলটি করতে পারে যদিও এটি খুব স্বজ্ঞাত নয়।
কেনেথ কোচরান

2

আমি এটি একাধিক ফাইল জিপ বা আনজিপ করতে ব্যবহার করি। রেজেক্স স্টাফগুলি প্রয়োজন হয় না, তবে আমি এটি তারিখের স্ট্যাম্পটি পরিবর্তন করতে এবং অযাচিত আন্ডারস্কোরগুলি সরাতে ব্যবহার করি। আমি কমপ্রেস >> জিপপ্যাথ স্ট্রিংয়ে খালি স্ট্রিংটি সমস্ত ফাইলের কোনও কিছুতে প্রিফিক্স করতে প্রয়োজনে ব্যবহার করি required এছাড়াও আমি সাধারণত আমি যা করছি তার ভিত্তিতে কমপ্রেস () বা ডিকম্প্রেস () মন্তব্য করি।

using System;
using System.IO.Compression;
using System.IO;
using System.Text.RegularExpressions;

namespace ZipAndUnzip
{
    class Program
    {
        static void Main(string[] args)
        {
            var directoryPath = new DirectoryInfo(@"C:\your_path\");

            Compress(directoryPath);
            Decompress(directoryPath);
        }

        public static void Compress(DirectoryInfo directoryPath)
        {
            foreach (DirectoryInfo directory in directoryPath.GetDirectories())
            {
                var path = directoryPath.FullName;
                var newArchiveName = Regex.Replace(directory.Name, "[0-9]{8}", "20130913");
                newArchiveName = Regex.Replace(newArchiveName, "[_]+", "_");
                string startPath = path + directory.Name;
                string zipPath = path + "" + newArchiveName + ".zip";

                ZipFile.CreateFromDirectory(startPath, zipPath);
            }

        }

        public static void Decompress(DirectoryInfo directoryPath)
        {
            foreach (FileInfo file in directoryPath.GetFiles())
            {
                var path = directoryPath.FullName;
                string zipPath = path + file.Name;
                string extractPath = Regex.Replace(path + file.Name, ".zip", "");

                ZipFile.ExtractToDirectory(zipPath, extractPath);
            }
        }


    }
}

এর জন্য ডট নেট 4.5 প্রয়োজন - অন্যরা যারা জিপফাইলে উত্তর দিয়েছিল ঠিক তেমন একটি নোট নোট করেছে এবং আমি এখনও 3.5 ব্যবহার করছি।
19


1

থেকে এখানে :

.Gz এর এক্সটেনশন সহ কোনও ফাইলকে লিখিত সঙ্কুচিত GZipStream অবজেক্টগুলি অনেকগুলি সাধারণ সংক্ষেপণ সরঞ্জাম ব্যবহার করে সংক্ষেপিত হতে পারে; তবে, এই শ্রেণিটি .zip সংরক্ষণাগার থেকে ফাইলগুলি যুক্ত করার বা ফাইলগুলি বের করার জন্য সহজাতভাবে কার্যকারিতা সরবরাহ করে না।


1

আপনি DeflateStream ব্যবহার করে .NET 3.5 এর মধ্যে এটি সব করতে পারেন। .NET 3.5 এর অভাবযুক্ত জিনিসটি হ্যাপ ফাইলগুলি সংগঠিত করতে ব্যবহৃত ফাইল শিরোনাম বিভাগগুলি প্রক্রিয়া করার ক্ষমতা। পিকেওয়্যার এই তথ্য প্রকাশ করেছে, যা আপনি কাঠামোগত ব্যবহারের পরে জিপ ফাইলটি প্রক্রিয়া করতে ব্যবহার করতে পারেন। এটি বিশেষভাবে কঠোর নয় এবং তৃতীয় পক্ষের কোডটি ব্যবহার না করেই সরঞ্জাম তৈরিতে এটি একটি ভাল অনুশীলন।

এটি কোনও এক লাইনের উত্তর নয়, তবে আপনি যদি সময় নিতে আগ্রহী হন এবং সক্ষম হন তবে এটি সম্পূর্ণভাবে কার্যকর able আমি কয়েক ঘন্টা এই কাজটি করার জন্য একটি ক্লাস লিখেছিলাম এবং এটি থেকে আমি যা পেয়েছি তা হ'ল কেবল নেট নেট 3.5 ব্যবহার করে ফাইলগুলিকে জিপ করা এবং আনজিপ করা।


0

আমি খুঁজে পাওয়া যায় নি এই এক যেহেতু আমি DotNetZip একটি কঠিন বাগ গাড়ীতে আঘাত, (NuGet উপর আনজিপ প্যাকেজ) আজ, এবং আমি উপলব্ধি সেখানে নেই অনেক কাজ গত দুই বছর ধরে DotNetZip সম্পন্ন সত্যিই যে হয়েছে।

আনজিপ প্যাকেজটি হ'ল, এটি আমার পক্ষে কাজটি করেছে - এতে ডটনেটজিপের যে বাগ ছিল তা ছিল না। এছাড়াও, এটি যুক্তিসঙ্গতভাবে ছোট ফাইল ছিল, মাইক্রোসফ্ট বিসিএলের উপর নির্ভর করে প্রকৃত সংক্ষেপনের জন্য। আমি সহজেই আমার প্রয়োজনীয় অ্যাডজাস্টমেন্টগুলি তৈরি করতে পারতাম (ডিকম্প্রেস করার সময় অগ্রগতির ট্র্যাক রাখতে সক্ষম হতে)। আমি এটি সুপারিশ।


0

এম্বেড রিসোর্সগুলি থেকে:

using (Stream _pluginZipResourceStream = Assembly.GetExecutingAssembly().GetManifestResourceStream(programName + "." + "filename.zip"))
{
    using (ZipArchive zip = new ZipArchive(_pluginZipResourceStream))
    {
        zip.ExtractToDirectory(Application.StartupPath);
    }
}

0

এখনও অবধি, আমি .iso ফাইলটি বের করার জন্য সেমিডি প্রসেসগুলি ব্যবহার করছিলাম, এটি সার্ভার থেকে অস্থায়ী পথে কপি করে ইউএসবি স্টিকের মাধ্যমে বের করা হয়েছিল। সম্প্রতি আমি খুঁজে পেয়েছি যে এটি 10 ​​জিবি এর চেয়ে কম .iso এর সাথে পুরোপুরি কাজ করছে। 29 জিবি এর মতো আইসোর জন্য এই পদ্ধতিটি কোনওভাবে আটকে যায়।

    public void ExtractArchive()
    {
        try
        {

            try
            {
                Directory.Delete(copyISOLocation.OutputPath, true); 
            }
            catch (Exception e) when (e is IOException || e is UnauthorizedAccessException)
            {
            }

            Process cmd = new Process();
            cmd.StartInfo.FileName = "cmd.exe";
            cmd.StartInfo.RedirectStandardInput = true;
            cmd.StartInfo.RedirectStandardOutput = true;
            cmd.StartInfo.CreateNoWindow = true;
            cmd.StartInfo.UseShellExecute = false;
            cmd.StartInfo.WindowStyle = ProcessWindowStyle.Normal;

            //stackoverflow
            cmd.StartInfo.Arguments = "-R";

            cmd.Disposed += (sender, args) => {
                Console.WriteLine("CMD Process disposed");
            };
            cmd.Exited += (sender, args) => {
                Console.WriteLine("CMD Process exited");
            };
            cmd.ErrorDataReceived += (sender, args) => {
                Console.WriteLine("CMD Process error data received");
                Console.WriteLine(args.Data);
            };
            cmd.OutputDataReceived += (sender, args) => {
                Console.WriteLine("CMD Process Output data received");
                Console.WriteLine(args.Data);
            };

            //stackoverflow


            cmd.Start();

            cmd.StandardInput.WriteLine("C:");
            //Console.WriteLine(cmd.StandardOutput.Read());
            cmd.StandardInput.Flush();

            cmd.StandardInput.WriteLine("cd C:\\\"Program Files (x86)\"\\7-Zip\\");
            //Console.WriteLine(cmd.StandardOutput.ReadToEnd());
            cmd.StandardInput.Flush();

            cmd.StandardInput.WriteLine(string.Format("7z.exe x -o{0} {1}", copyISOLocation.OutputPath, copyISOLocation.TempIsoPath));
            //Console.WriteLine(cmd.StandardOutput.ReadToEnd());
            cmd.StandardInput.Flush();
            cmd.StandardInput.Close();
            cmd.WaitForExit();
            Console.WriteLine(cmd.StandardOutput.ReadToEnd());
            Console.WriteLine(cmd.StandardError.ReadToEnd());

0

আপনি ইনফো-আনজিপ কমান্ড লাইন কোড কোড ব্যবহার করতে পারেন ou আপনার কেবল ইনফ-আনজিপ অফিসিয়াল ওয়েবসাইট থেকে আনজিপ.এক্সই ডাউনলোড করতে হবে।

 internal static void Unzip(string sorcefile)
    {
        try
        {
            AFolderFiles.AFolderFilesDelete.DeleteFolder(TempBackupFolder); // delete old folder   
            AFolderFiles.AFolderFilesCreate.CreateIfNotExist(TempBackupFolder); // delete old folder   
           //need to Command command also to export attributes to a excel file
            System.Diagnostics.Process process = new System.Diagnostics.Process();
            System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
            startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; // window type
            startInfo.FileName = UnzipExe;
            startInfo.Arguments = sorcefile + " -d " + TempBackupFolder;
            process.StartInfo = startInfo;
            process.Start();
            //string result = process.StandardOutput.ReadToEnd();
            process.WaitForExit();
            process.Dispose();
            process.Close();
        }
        catch (Exception ex){ throw ex; }
    }        
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.