SAS检查目录是否存在

时间:2016-05-17 10:45:02

标签: sas

如何检查目录是否存在,如果不存在,那么它将是:syserr<> 0 ?,我需要

%sysfunc(filename(fileref,&dir)) 

如果不存在,则需要syserr值0如果不是<> 0。 谢谢你的帮助

2 个答案:

答案 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.);