2012-11-15 102 views

回答

10

從SAS文檔:

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

它基本上與操作系統無關,因爲它可以在多個操作系統上工作。由於fileref會依賴於操作系統,所以永遠不可能擁有真正的獨立性,但是如果將其指定爲參數,則不應該成爲問題。

宏,你會在SYSFUNC塊使用FDELETE:

%put %sysfunc(fdelete(myfile)); 

然而,MYFILE需要一個fileref,所以如果你只使用文件的實際物理位置的參數,你會需要兩個步驟:

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

我把這個一步如下:

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

ŧ他使它更加多才多藝。謝謝喬!