如何检查目录是否存在,如果不存在,那么它将是:syserr<> 0 ?,我需要
%sysfunc(filename(fileref,&dir))
如果不存在,则需要syserr值0如果不是<> 0。 谢谢你的帮助
答案 0 :(得分:5)
检查文件夹是否存在的清洁方法
%let does_it_exist=%sysfunc(fileexist(&dir));
如果文件夹不存在,则返回值0;如果文件夹存在,则返回值1.
答案 1 :(得分:3)
可能有一种更简洁的方法让SAS抛出错误,但以下内容对我有用。一般的想法是,如果目录存在,则执行将syserr设置为0的操作;如果没有,你会做一些引发错误的事情。
%let your_path = "...";
%macro your_macro(dir);
%let rc = %sysfunc(filename(fileref, &dir.));
%if %sysfunc(fexist(&fileref)) %then %do;
data _null_;
set _null_;
run;
%end;
%else %do;
data _null_;
set something_that_doesnt_exist;
run;
%end;
%put syserr = &syserr.;
%mend your_macro;
%your_macro(&your_path.);