klasörü kopyalamak
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
klasörü kopyalamak
arkadaşlar ilk sorumu galiba yanlış sordum bunun içinde net yanıt alamadım, daha kısa ve basit olarak sorayım dedim.
yaptığım program 1 adet exe ve 3 adet data dosyasından oluşuyor toplam 4 dosya. klasörün adı proje. bu proje her dizinde çalışabiliyor ve kurulum gerektirmiyor. şimdi benim istediğim şu; bu proje klasöründeki exe dosyasının içinde bir butona tıklayınca bu proje klasörünü içindeki 4 dosya ile c:\Yedek içine atması gerekiyor. Source değişken dizin olabilir C:\ D:\ vb. herhangi bir yerde çalışıyor ama Target sabit C:\Yedek. sizden isteğim bunu yapabilecek bir component veya kod. herkeze sonsuz teşekkürler.
yaptığım program 1 adet exe ve 3 adet data dosyasından oluşuyor toplam 4 dosya. klasörün adı proje. bu proje her dizinde çalışabiliyor ve kurulum gerektirmiyor. şimdi benim istediğim şu; bu proje klasöründeki exe dosyasının içinde bir butona tıklayınca bu proje klasörünü içindeki 4 dosya ile c:\Yedek içine atması gerekiyor. Source değişken dizin olabilir C:\ D:\ vb. herhangi bir yerde çalışıyor ama Target sabit C:\Yedek. sizden isteğim bunu yapabilecek bir component veya kod. herkeze sonsuz teşekkürler.
Usese shellapi ekle.
;
Kullanımı:
Kolay gelsin.
Kod: Tümünü seç
function KlasorKopyala(von, zieldir: string): boolean;
var fos: TSHFileOpStruct;
begin
ZeroMemory(@fos, SizeOf(fos));
with fos do begin
wFunc := FO_COPY;
fFlags := FOF_FILESONLY;
pFrom := PChar(von + #0);
pTo := PChar(zieldir)
end;
Result := (0 = ShFileOperation(fos));
end
Kullanımı:
Kod: Tümünü seç
KlasorKopyala('c:\WINDATA', 'F:\WINDATAYEDEK');
Kullanımı:
Kolay gelsin.
hocam çok teşekkürler. ancak ben C:\WINDATA klasörünü belirtmek istemiyorum. program hangi sürücü ve hangi klasör veya hangi altklasörde ise bu kısmı otomatik olarak program seçsin.
Ben exe dosyasının çalıştığı dizini alabiliyorum, ancak bunu C:\WINDATA yazan kısımda gösteremiyorum. sorunum bu
Kod: Tümünü seç
KlasorKopyala('c:\WINDATA', 'F:\WINDATAYEDEK');
hocam çok teşekkürler. ancak ben C:\WINDATA klasörünü belirtmek istemiyorum. program hangi sürücü ve hangi klasör veya hangi altklasörde ise bu kısmı otomatik olarak program seçsin.
Ben exe dosyasının çalıştığı dizini alabiliyorum, ancak bunu C:\WINDATA yazan kısımda gösteremiyorum. sorunum bu
Kod: Tümünü seç
c:\windata
Kod: Tümünü seç
Yol:=Exenin_Pathi;
KlasorKopyala(Exenin_Pathi, 'F:\WINDATAYEDEK');
Bişnev in ney çün hikâyet mîküned
Ez cüdâyîhâ şikâyet mîküned

Ez cüdâyîhâ şikâyet mîküned

hocam aşağıdaki kodu kullanıyorum ancak dosya kopyalanamıyor hata mesajı alıyorum.hdayi yazdı:yazan yere, exe'nin çalıştığı path'i yazacaksın.Kod: Tümünü seç
c:\windata
Kolay Gelsin...Kod: Tümünü seç
Yol:=Exenin_Pathi; KlasorKopyala(Exenin_Pathi, 'F:\WINDATAYEDEK');
Kod: Tümünü seç
procedure TForm1.dxButton5Click(Sender: TObject);
var
yol:string;
begin
yol:=extractfilepath(Application.ExeName);
KlasorKopyala(yol, 'C:\aaa');
end;
dt99 demişki:
Bu kod çalışıyor.Exe de dahil program klasöründe ne varsa C de KopyalanacakKlasorAdi adında bir klasör oluşturup içine atıyor.Hata da vermiyor.Burada Kopyalanacakklasör yerine istediğini yaz.
Kolay gelsin.
Hocam yanlış yapıyorsunzu da ondan. ExtractFilePath yerine ExtractFileDir demeniz gerekirdi.hocam aşağıdaki kodu kullanıyorum ancak dosya kopyalanamıyor hata mesajı alıyorum.
Kod:
procedure TForm1.dxButton5Click(Sender: TObject);
var
yol:string;
begin
yol:=extractfilepath(Application.ExeName);
KlasorKopyala(yol, 'C:\aaa');
end;
Kod: Tümünü seç
KlasorKopyala(ExtractFiledir(Application.ExeName),'C:\KopyalanacakKlasorAdi');
Kolay gelsin.
Kod: Tümünü seç
"Hata veriyor" cümlesini lügatinizden silin. Bu cümle bir programcının asla kullanmaması gereken bir cümle.
"filanca nolu, filanca hatayı veriyor" gibi tam hata cümlesini yazın.
Kod: Tümünü seç
Dosya kopyalanamıyor: Kaynak dosya veya diskten okuyamıyor.
dt99 demişki:
Hocam exe dosyayıda kopyalıyor yani sorun yok.bu kod çalışıyor.Ben mesajı ilk gönderdiğimde exe kopyalanamıyor demiştim ama o zaman kodu ilk kez run etmiştim sanırım ondan kopyalamamıştı ve sonradan mesajımı editleyip exeninde kopyalandığını yazdım.Sanırım ben editleryene kadar okudunuz.
Yani dikkat ederseniz exeyide kopyalıyor.
Kolay gelsin.
Kod: Tümünü seç
NewMember hocam ben kodda extractfilepath kullanıyordum sorun bu zannedersem. ExtractFiledir kullanınca problem halloldu. exe dosyasını başka bir yolla hallederim. Teşekkürler. Herkeze saygılar...
Yani dikkat ederseniz exeyide kopyalıyor.
Kolay gelsin.
-
- Üye
- Mesajlar: 386
- Kayıt: 02 Tem 2007 09:43
Re: klasörü kopyalamak
değerli arkadaşlar;
yukarıda belirtmiş olduğunuz bilgiler ışığında kodu kendime göre ayarladım. çok teşşekkür ederim. acaba winrar yada winzıp farmatında sıkıştırarak kopyalayabilirmiyiz. dataların winrar yada winzıplı dosyalar halinde yedeklenmesi daha güvenli olacağı düşüncesindeyim. kullandığım kodlar aşağıdadır.
delphi7 ve paradox kullanmaktayım. kolay gelsin.
function KlasorKopyala(von, zieldir: string): boolean;
var fos: TSHFileOpStruct;
begin
ZeroMemory(@fos, SizeOf(fos));
with fos do begin
wFunc := FO_COPY;
fFlags := FOF_FILESONLY;
pFrom := PChar(von + #0);
pTo := PChar(zieldir)
end;
Result := (0 = ShFileOperation(fos));
end;
procedure TForm1.Button1Click(Sender: TObject);
VAR
S:string;
begin
S:=Datetostr(cxDateEdit1.Date);
KlasorKopyala('c:\CARIHSP63\CARIDATA', ''+DriveComboBox1.Drive +':\CARIHSP63_DATALAR\'+S+'');
end;
procedure TForm1.FormShow(Sender: TObject);
begin
cxDateEdit1.Date:=now;
end;
yukarıda belirtmiş olduğunuz bilgiler ışığında kodu kendime göre ayarladım. çok teşşekkür ederim. acaba winrar yada winzıp farmatında sıkıştırarak kopyalayabilirmiyiz. dataların winrar yada winzıplı dosyalar halinde yedeklenmesi daha güvenli olacağı düşüncesindeyim. kullandığım kodlar aşağıdadır.
delphi7 ve paradox kullanmaktayım. kolay gelsin.
function KlasorKopyala(von, zieldir: string): boolean;
var fos: TSHFileOpStruct;
begin
ZeroMemory(@fos, SizeOf(fos));
with fos do begin
wFunc := FO_COPY;
fFlags := FOF_FILESONLY;
pFrom := PChar(von + #0);
pTo := PChar(zieldir)
end;
Result := (0 = ShFileOperation(fos));
end;
procedure TForm1.Button1Click(Sender: TObject);
VAR
S:string;
begin
S:=Datetostr(cxDateEdit1.Date);
KlasorKopyala('c:\CARIHSP63\CARIDATA', ''+DriveComboBox1.Drive +':\CARIHSP63_DATALAR\'+S+'');
end;
procedure TForm1.FormShow(Sender: TObject);
begin
cxDateEdit1.Date:=now;
end;
İsteyen, yapabildiğinden daha fazlasını yapar.