Dosya kopyalamak: COPYFILE

Sunucu üzerindeki (ya da client tarafındaki, * önekiyle) bir dosyayı başka bir konuma kopyalamak için COPYFILE kullanılır:

OBJECT:
    STRING KAYNAK,
    STRING HEDEF;

KAYNAK = '*C:\TMP\dosya.txt';
HEDEF = '*C:\TMP\dosya_kopya.txt';

COPYFILE KAYNAK INTO HEDEF;

Dizin içeriğini listelemek: FILELIST

Bir dizindeki dosyaları bir tabloya dökmek için FILELIST kullanılır:

OBJECT:
    STRING YOL;

YOL = '*C:\TMP\';

DESTROYTABLE TMPTABLE;
FILELIST YOL TO TMPTABLE;
SET TMPTABLE TO TABLE TMPTABLE;

Dizin yoksa hedef tablonun ilgili değeri notexist döner — kontrolü buna göre yapmak gerekir.

Dosya var mı: FILEEXISTS

FILEEXISTS STRINGVAR1;
IF SYS_STATUS THEN
    STRINGVAR3 = 'Dosya yok.';
ELSE
    STRINGVAR3 = 'Dosya var.';
ENDIF;

Dosyanın hash'ini almak: DIGESTFILE

Bir dosyanın bütünlüğünü doğrulamak ya da benzersiz bir imzasını almak için DIGESTFILE kullanılır; algoritma (SHA1, MD5 vb.) belirtilebilir:

DIGESTFILE 'SunucudakiDosya.txt' INTO STRINGVAR3 USING 'SHA1';

Sonuç

COPYFILE, FILELIST, FILEEXISTS, DIGESTFILE — dosya işlemleri yazımızda ele aldığımız OPEN FILE/PUT/GET'in tamamlayıcısı bu dört komut. İçeriğiyle uğraşmadan dosyayı bir bütün olarak kopyalamanız, listelemeniz, varlığını kontrol etmeniz ya da bütünlüğünü doğrulamanız gerektiğinde devreye giriyorlar.