2012-11-15 20 views

Odpowiedz

10

Z dokumentacji SAS:

data _null_; 
    fname="tempfile"; 
    rc=filename(fname,"physical-filename"); 
    if rc = 0 and fexist(fname) then 
     rc=fdelete(fname); 
    rc=filename(fname); 
run; 

Jest zasadniczo niezależny od systemu operacyjnego, ponieważ działa na wielu systemach operacyjnych. Nie możesz mieć prawdziwej niezależności, ponieważ fileref będzie zależny od systemu operacyjnego, ale jeśli określisz to jako argument, nie powinno to stanowić problemu.

jako makro, należy użyć FDELETE w bloku SYSFUNC:

%put %sysfunc(fdelete(myfile)); 

Jednak myfile musi być fileRef, więc jeśli były przy użyciu tylko plik za rzeczywistą lokalizację fizyczną jako argument wy mieliście potrzebne są dwa kroki:

%macro file_Delete(file); 
filename __a "&file."; 
%put %sysfunc(fdelete(__a)); 
%mend file_delete; 
2

wziąłem ten jeden krok dalej w następujący sposób:

%macro fdel(file); 
    %let rc= %sysfunc(filename(fref,&file)); 
    %let rc= %sysfunc(fdelete(&fref)); 
%mend; 

T jego sprawia, że ​​jest bardziej wszechstronny. Dzięki Joe!