我正在寻找一段代码,最好是独立于操作系统和基于宏的代码,用于删除文本文件(或任何文件)
答案 0 :(得分: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;
答案 1 :(得分:2)
我进一步采取了以下措施:
%macro fdel(file);
%let rc= %sysfunc(filename(fref,&file));
%let rc= %sysfunc(fdelete(&fref));
%mend;
这使它更具通用性。谢谢乔!