2012-11-15 62 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; 

ŧ他使它更加多才多艺。谢谢乔!