copyfile ile dosya kopyalama

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
ayseonat
Üye
Mesajlar: 58
Kayıt: 17 Ara 2004 12:18
Konum: Konya

copyfile ile dosya kopyalama

Mesaj gönderen ayseonat »

Mrb arkadaşlar

Ben elimde olan bir veri tabanı dosyasını yedeklemek istiyorum. vt.mdb dosyası. Ben bunu daha önceki sorulan sorulardan inceledim.
copyfile(‘c:\vt.mdb','d:\vt.mdb',false);
ve bu şekilde yaptım. bu işlemini yapınca kopyalıyor. fakat ben bunu bu şekilde yapmak istemiyorum. çünkü benim çalışmamın olduğu yerdeki vt.mdb dosyasını almam gerekiyor. yani program nereye kurulduysa ordan almalıyım.
ben bu copyfile işleminde;

var
ad:string;
begin
ad:=getcurrentdir+'\vt.mdb';
copyfile(ad,'d:\vt.mdb',false);
end;

diye yazıyorum. ama olmuyor. yani çalıştığım dizindeki veritabanını nasıl alabilirim.

herkese iyi çalışmalar
Kullanıcı avatarı
veliadiguzel
Üye
Mesajlar: 197
Kayıt: 09 Tem 2003 02:11
Konum: Gebze/Kocaeli
İletişim:

Mesaj gönderen veliadiguzel »

Selamun Aleyküm

Eğer dosya exe ile aynı yerde değilse onu bildirmen lazım gelebilir.
mesela exen c:\Program\prog.exe ise datanda
c:\Program\data\vt.mdb
ise olmaz

o zaman kodu şööle yazman lazım

var
ad:string;
begin
ad:=getcurrentdir+'\data\vt.mdb';
copyfile(ad,'d:\vt.mdb',false);
end;

AEO
Misafir

Mesaj gönderen Misafir »

merhaba.
copyfile parametresinde tip hatası var bence. pchar(ad) gibi bi kod çözüm olur sanırım.Exe'nin klasörünü bulmaya gelince;

StrUtils unitini eklemek kaydı ile;

Kod: Tümünü seç

ExtractFilePath(Application.ExeName);
bu şekilde kullanmak daha sağlıklı olur sanırım, zira uygulamanız açıkken kullanıcının klasörler arasında dolaşma olasılığı azımsanacak bişey değil..

kolay gelsin.
oguzozturk74
Kıdemli Üye
Mesajlar: 574
Kayıt: 01 Şub 2004 12:29
Konum: Erdemli - MERSİN

Mesaj gönderen oguzozturk74 »

Kendi projemde şöyle kullanıyorum..

Kod: Tümünü seç

procedure TFRM_YEDEK.BTN_YEDEKLEClick(Sender: TObject);
var
  GUN , AY , YIL : Word;
  GUN_AY_YIL : string;
  KAYNAK , HEDEF: String;
begin
  DecodeDate(Date, YIL, AY, GUN);
  GUN_AY_YIL := IntToStr(GUN) + '_' + IntToStr(AY) + '_' + IntToStr(YIL);
  KAYNAK := ExtractFileDir(Application.ExeName)+'\Database\Deneme_DataBase\BETUL_DENEME.gdb';
  HEDEF := ExtractFileDir(Application.ExeName)+'\BackUp\BETUL_DENEME_'+GUN_AY_YIL+'.gbk';
  if DirectoryExists('c:\Software\STOK_CARI\BackUp') then
  begin
    PROGRESSBAR.MinValue := 0;
    PROGRESSBAR.MaxValue := 100;
    PROGRESSBAR.Progress := 0;
    with PROGRESSBAR do      // açılışı ayarlıyoz yavaşlat yada hızlandır
      Progress := Progress + 10;  Sleep(100);
    with PROGRESSBAR do
      Progress := Progress + 10;  Sleep(100);
    with PROGRESSBAR do
      Progress := Progress + 10;  Sleep(100);
    with PROGRESSBAR do
      Progress := Progress + 5;   Sleep(100);
    with PROGRESSBAR do
      Progress := Progress + 10;  Sleep(100);
    with PROGRESSBAR do
      Progress := Progress + 5;   Sleep(100);
    with PROGRESSBAR do
      Progress := Progress + 15;  Sleep(100);
    with PROGRESSBAR do
      Progress := Progress + 10;  Sleep(100);
    with PROGRESSBAR do
      Progress := Progress + 10;  Sleep(100);
    with PROGRESSBAR do
      Progress := Progress + 15;  Sleep(100);

    if CopyFile( PChar(KAYNAK), PChar(HEDEF), false ) then
    begin
      ShowMessage('Yedekleme İşlemini Başarıyla Gerçekleştirdiniz.');
      PROGRESSBAR.Progress := 0;
    end
    else
      raise Exception.Create(
              Format('%s den %s e kopyalama işlemi gerçekleştirilemedi! , Windows Hata Kodu: '+'%d (%s)',[KAYNAK, HEDEF, GetLastError, SysErrorMessage(GetLastError)]));
  end;
end;
ayseonat
Üye
Mesajlar: 58
Kayıt: 17 Ara 2004 12:18
Konum: Konya

Mesaj gönderen ayseonat »

Mrb arkadaşlar
teşekkür ederim herkese. şu şekilde yapınca oldu :D

var
ad:string;
begin
ad:=getcurrentdir+'\vt.mdb';
copyfile(Pchar(ad),'d:\vt.mdb',false);
end;

herkese iyi çalışmalar...
Kullanıcı avatarı
lazio
Moderator
Mesajlar: 1527
Kayıt: 11 Tem 2003 04:55
Konum: İstanbul

Mesaj gönderen lazio »

Kod: Tümünü seç

ExtractFilePath(Application.ExeName);
kullanmanı tavsiye ederim.
CurrentDirector herzaman programının çalıştığı dizin olmayabilir..
DeveloperToolKit

..::|YeşilMavi|::..
Cevapla