Search code examples
sassas-macro

Using SAS to delete a text file


Am looking for a piece of code, preferably OS independent and macro based, for deleting a text file (or any file for that matter)


Solution

  • From SAS documentation:

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

    It's essentially OS independent, in that it will work on multiple OS's. You can't ever have true independence since the fileref would be OS-dependent, but if you specify that as an argument it shouldn't be a problem.

    As a macro, you would use FDELETE in a SYSFUNC block:

    %put %sysfunc(fdelete(myfile));
    

    However, myfile needs to be a fileref, so if you were using only the file's actual physical location as an argument you'd need two steps:

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