PDA

View Full Version : سوال: فایل Rar



elahejafari
دوشنبه 19 تیر 1391, 12:18 عصر
سلام
شاید این سوال تکراری باشد ولی من دو روز است که درگیر این مسئله هستم ولی جواب مناسبی نیافتم
در C# چگونه می توان یک فایل Rar را Extract کرد ؟

elahejafari
دوشنبه 19 تیر 1391, 12:32 عصر
لطفا راهنمایی کنید.

Saeed_m_Farid
دوشنبه 19 تیر 1391, 13:26 عصر
و اینگونه بود که جستجو اختراع شد:


پسورد گذاشتن روی فایل فشرده مثل rar (http://barnamenevis.org/showthread.php?162906&p=742169&viewfull=1#post742169)
سورس فشرده ساز محبوب 7z (http://barnamenevis.org/showthread.php?64210&p=1284128&viewfull=1#post1284128)

elahejafari
دوشنبه 19 تیر 1391, 16:03 عصر
جستحویی کامل انجام دادم و تمام کدها رو امتحان کردم ولی به جواب نرسیدم
حالا نمونه کد89442م رو میزارم ببینید راهنمایم کند (برنامه unrar را انجام نمی ده)

the king
دوشنبه 19 تیر 1391, 21:39 عصر
جستحویی کامل انجام دادم و تمام کدها رو امتحان کردم ولی به جواب نرسیدم
حالا نمونه کد89442م رو میزارم ببینید راهنمایم کند (برنامه unrar را انجام نمی ده)

بهتون توصیه می کنم که هیچوقت برای مشخص کردن مسیر فایل مستقیما دو رشته رو بهم نچسبونید، همینطوری هم به
مسیر کاراکتر \ اضافه نکنید. بجای اینکار از System.IO.Path.Combine استفاده کنید. در ضمن اگر پروژه Windows Application می نویسید
بجای System.AppDomain.CurrentDomain.BaseDirectory از ( System.IO.Path.GetDirectoryName( Application.ExecutablePath استفاده کنید.


private void button1_Click(object sender, EventArgs e)
{
try
{
Process myProcess = new Process();
string appFolder = System.IO.Path.GetDirectoryName(Application.Execut ablePath);
myProcess.StartInfo.FileName = System.IO.Path.Combine(appFolder, "UnRar.exe");
string filename = System.IO.Path.Combine(appFolder, "asd.rar");
myProcess.StartInfo.Arguments = "e -p[123] " + filename;
myProcess.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
myProcess.EnableRaisingEvents = true;
myProcess.Exited += new EventHandler(this.myProcess_Exited);
myProcess.Start();
}
catch (Exception X)
{
MessageBox.Show(X.Message);
}
}

elahejafari
سه شنبه 20 تیر 1391, 16:30 عصر
مشکل حل شد و از راهنمایی ها ممنون
حالا یک سوال دیگر برنامه من یک فایل rar را باز می کند آیا برنامه من در سیستمی که winrar نباشد اجرا می شود ؟
(با این کد ( System.Diagnostics.Process.Start("UnRAR.exe", "e asd.rar"))

the king
سه شنبه 20 تیر 1391, 18:02 عصر
مشکل حل شد و از راهنمایی ها ممنون
حالا یک سوال دیگر برنامه من یک فایل rar را باز می کند آیا برنامه من در سیستمی که winrar نباشد اجرا می شود ؟
(با این کد ( System.Diagnostics.Process.Start("UnRAR.exe", "e asd.rar"))

حتی اگه روی سیستم WinRar نصب شده باشه در مسیر های پیشفرض Path نیست که بنویسید unrar و اجرا بشه.
یا باید مسیر دقیق پوشه ای که unrar داخلش قرار داره رو مشخص کنید، یا اینکه بگذارید اش کنار فایل اجرایی تون.
تا اونجایی که اطلاع دارم Unrar رایگانه، فایل اش رو کنار فایل اجرایی برنامه تون قرار دهید تا نصب بودن و نبودن WinRar مهم نباشه.