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?
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 ]);
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.
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. - .