Programdan rar arşivini istenilen klasöre çıkartmak

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
onclick_lik
Üye
Mesajlar: 35
Kayıt: 04 Eki 2007 08:06

Programdan rar arşivini istenilen klasöre çıkartmak

Mesaj gönderen onclick_lik »

Selamün Aleyküm arkadaslar

Ben programımdan bir klasörde bulunan rar içindeki dosyaları başka bir klasöre çıkartmak istiyorum bunu nasıl yapabilirim...

Bir çok örnek denedim ama sadece acma işlemi yapıyor.Baska bir klasöre cıkartma işlemi olmuyor.



Yardımlarınız için tesekkürler...
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Mesaj gönderen conari »

Burda bir kod örneği var ama 3.parti bileşen sanırım.

http://www.example-code.com/delphi/rar_unrarOneFile.asp
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
onclick_lik
Üye
Mesajlar: 35
Kayıt: 04 Eki 2007 08:06

Mesaj gönderen onclick_lik »

cevabın için tesekkürler

Bunu kodla yapmanın bir yolu yokmu?
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Mesaj gönderen conari »

birde şuraya bak

Kod: Tümünü seç

http://www.delphiturkiye.com/forum/viewtopic.php?t=21504&highlight=rar+a%E7mak
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
onclick_lik
Üye
Mesajlar: 35
Kayıt: 04 Eki 2007 08:06

Mesaj gönderen onclick_lik »

Formda cok arama yaptım ama aradıgım sonuca ulasamadım.
ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 10:13

Mesaj gönderen ikutluay »

komut satırından yapar gibi kodundan yapabilrsin.

WINRAR X rardosyasiadi *.pas c:\sources\

unrar X rardosyasiadi *.pas c:\sources\

gibi çalıştırırsan olur
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
onclick_lik
Üye
Mesajlar: 35
Kayıt: 04 Eki 2007 08:06

Mesaj gönderen onclick_lik »

cevabınız için tesekkürler

ama ben bu komutlardan bişey anlamadım

Dogrusu bu kodları delphiye nasıl yazcaz

Daha acık yazarsanız sevinirim

Kolay gelsin
ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 10:13

Mesaj gönderen ikutluay »

üstad delpihi helpte shellexec ve winexec ile ilgili bir ton acıklama var forumdada böyle...

biz zaten size oltayı veriyoruz... balığı yakalamak size kalmış.
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
onclick_lik
Üye
Mesajlar: 35
Kayıt: 04 Eki 2007 08:06

Mesaj gönderen onclick_lik »

üstad forumda var diyorsun aradım istediğim cevaba ulasamadım

ulassam zaten sorup da sizleri mesgul etmek istemezdim.

winexec ve shellexecute windows apileri hakkında biraz bilgim var.

yaptıgım programda sadece rar ı acabiliyorum istenilen klasore cıkaramıyorum..

unrar.exe yide denedim apilerle calıstırmayı ama olmadı

belki apileri kullanmadan cıkarmanın bi yolu vardır?

sadece istenilen klasore cıkaran komut hakkında bilgi istedim



kolay gelsin
ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 10:13

Mesaj gönderen ikutluay »

babacan zaten istenen klasöre çıkaran şey onu parametre ile kullanmak. apiye gerek yok. (rar ın kurulu olması gerekir)...

yapman gereken gerekli parametrelerle kendi dosyanı içeren bir kod oluşturmak hepsi bu. gördüğüm kadarı ile dosya adı ve klasörü alıp bunu komuta gommen yeterli olacak.
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 10:13

Mesaj gönderen ikutluay »

farazi olarak yazıyorum

Kod: Tümünü seç

rarname:='xx.rar';
ac:='*.pas';
hedef:='c:\';
komut:='WINRAR X ' + rarname + ' ' ac+ ' ' +hedef ;
bunu winexec ile çalıştırman gerekir olur sanırım
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
Kullanıcı avatarı
ahmet_sinav
Üye
Mesajlar: 263
Kayıt: 17 Nis 2004 07:44
Konum: İzmir Yeşilyurt Ulu Cami
İletişim:

Mesaj gönderen ahmet_sinav »

iyi çalışmalar.
winrar command olarak çalıştırabilir ikutluay'ın dediği gibi ben progress'de de yazmıştım gayet güzel çalışıyor. uygulamanın olduğu yere rar.exe dosyasını atmanız yeterli. ayrıca bir help dosyası da var rar.txt adında içeriğine bakarsanız istedikleriniz var.
User's Manual
~~~~~~~~~~~~~
RAR 3.30 32-bit console version
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Welcome to the RAR Archiver!
-=-=-=-=-=-=-=-=-=-=-=-=-=-=
..................
kolay gelsin.
İmam Süleyman Yakub <==> Molla Mustafa Mansur
onclick_lik
Üye
Mesajlar: 35
Kayıt: 04 Eki 2007 08:06

Mesaj gönderen onclick_lik »

Hocam ben bir bat dosyası oluşturarak içine

Kod: Tümünü seç

unrar.exe e *.rar
yazdım..Klasör içinde >>unrar.exe<< ve >>ac.bat<< dosyası bulunuyo.Bu şekilde aynı klasör içinde ne kadar .rar dosyası varsa hepsini cıkartıyo buraya kadar bir problemim yok..
ama programdan shellexecute yöntemiyle >>ac.bat<< dosyasını çalıştırdığım zaman olmuyo :oops:

yaptığım programı o klasör içine atarsam çıkartıyo :!:

Kullandığım komut bu şekilde

Kod: Tümünü seç

ShellExecute(0,'open','C:\Update\ac.bat',nil,nil,SW_HIDE);
Programım farklı yerde olabilir..Bunu ne şekilde yapabilirim :?:
yardımlarınız için şimdiden allah razı olsun
Kullanıcı avatarı
ahmet_sinav
Üye
Mesajlar: 263
Kayıt: 17 Nis 2004 07:44
Konum: İzmir Yeşilyurt Ulu Cami
İletişim:

Mesaj gönderen ahmet_sinav »

winexec();
kullanacaksınız.
Kolay gelsin.
İmam Süleyman Yakub <==> Molla Mustafa Mansur
onclick_lik
Üye
Mesajlar: 35
Kayıt: 04 Eki 2007 08:06

Mesaj gönderen onclick_lik »

Arkadaslar rar karısık oldugu için ben de zip le yaptım

Abbrevia componentinden;

Abunzipper1 ve Abzipview1 kullandım...

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
begin
     if OpenDialog1.Execute then
begin
     Edit1.Text:=OpenDialog1.FileName;
     AbZipView1.BeginUpdate;
     AbUnZipper1.FileName:=Edit1.Text;
     AbZipView1.EndUpdate;
end;

end;

procedure TForm1.Button3Click(Sender: TObject);
begin
     if (Edit1.Text<>'') and (Edit2.Text<>'') then
begin
     Screen.Cursor:=crHourGlass;
     AbUnZipper1.BaseDirectory:=Edit2.Text;
     AbUnZipper1.ExtractFiles('*.*');
     Screen.Cursor:=crDefault;
end;

end;

end.
Cevapla