Dosya Kopyalamıyor..

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
lovecraft
Üye
Mesajlar: 32
Kayıt: 03 Haz 2005 11:31
Konum: Kocaeli
İletişim:

Dosya Kopyalamıyor..

Mesaj gönderen lovecraft »

Kod: Tümünü seç

kaynak := ExtractFileDir(Application.ExeName)+'\VT\VT.GDB';
hedef := ExtractFileDir(Application.ExeName)+'\VT\'+sirketlertable.Fields[1].Text+'\'+cyili+'\VT.GDB';
if Windows.CopyFile( PChar(kaynak), PChar(hedef), false ) then
begin
..yapılan işlemler
end
Böyle bir kod denedim fakat VT klasörü altında otomatik kendisi klasör oluşturup dosyayı kopyalayamadı.. sorun nedir acaba?
Samet Poyraz
http://www.turkiyeburda.net
Poyraz Yazılım
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

- Burada dosya isimlerinin ve yolunun doğru elde edilip edilmediğini kontrol ettin mi ? İlk bakılacak yer orası.

- İkincisi bu ilgili dizinler var mı ? Yoksa yine başarısız olur...

Kod: Tümünü seç

  kaynak := ExtractFileDir(Application.ExeName)+'\VT\VT.GDB';
  hedef  := ExtractFileDir(Application.ExeName)+'\VT\'+sirketlertable.Fields[1].Text+'\'+cyili+'\VT.GDB';
  ShowMessageFmt(' Kaynak Dosya : %s'#13#13'Hedef Dosya : %s', [ Kaynak, Hedef ]);
Resim
Resim ....Resim
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: Dosya Kopyalamıyor..

Mesaj gönderen sabanakman »

lovecraft yazdı:

Kod: Tümünü seç

kaynak := ExtractFileDir(Application.ExeName)+'\VT\VT.GDB';
hedef := ExtractFileDir(Application.ExeName)+'\VT\'+sirketlertable.Fields[1].Text+'\'+cyili+'\VT.GDB';
if Windows.CopyFile( PChar(kaynak), PChar(hedef), false ) then
begin
..yapılan işlemler
end
Böyle bir kod denedim fakat VT klasörü altında otomatik kendisi klasör oluşturup dosyayı kopyalayamadı.. sorun nedir acaba?
Burada yapılan hata sanırım CopyFile fonksiyonu ile kalsör oluşturulmasının beklentisi içinde olmak. Halbuki bu fonksiyon sadece var olan klasörlere kopyalama yapabilir. Dosya kopyalamadan önce ForceDirectories fonksiyonu ile klasörü oluşturmak gerekmektedir.

Kod: Tümünü seç

kaynak := ExtractFileDir(Application.ExeName)+'\VT\VT.GDB';
hedef := ExtractFileDir(Application.ExeName)+'\VT\'+sirketlertable.Fields[1].Text+'\'+cyili+'\VT.GDB';

HedefKlasor:=ExtractFilePath(Hedef);
if not ForceDirectories(HedefKlasor) then
 raise Exception.CreateFmt('%s klasörü oluşturulamıyor',[HedefKlasor]);//<-

if Windows.CopyFile( PChar(kaynak), PChar(hedef), false ) then
begin
..yapılan işlemler
end
Şeklinde kod eklemesi ile bu sorun giderilir.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

@lovecraft yazdı: ... otomatik kendisi klasör oluşturup ...
- Bu kısım dikkatimden kaçmış :shock: tabii ki @sabanakman'ın dediği gibi kopyalamadan önce hedef dizini oluşturmak zorunluluğu vardır.
Resim
Resim ....Resim
Kullanıcı avatarı
lovecraft
Üye
Mesajlar: 32
Kayıt: 03 Haz 2005 11:31
Konum: Kocaeli
İletişim:

Mesaj gönderen lovecraft »

Allah razı olsun arkadaşlar çok saolun... takıldığım noktalardan biriydi..
Samet Poyraz
http://www.turkiyeburda.net
Poyraz Yazılım
Cevapla