mirror of
https://github.com/sasjs/core.git
synced 2026-01-09 02:10:06 +00:00
feat: adding mfv_existfolder.sas and tests
This commit is contained in:
29
tests/viya/mfv_existfolder.test.sas
Normal file
29
tests/viya/mfv_existfolder.test.sas
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
/**
|
||||||
|
@file
|
||||||
|
@brief Testing mfv_existfolder macro function
|
||||||
|
|
||||||
|
<h4> SAS Macros </h4>
|
||||||
|
@li mf_uid.sas
|
||||||
|
@li mfv_existfolder.sas
|
||||||
|
@li mp_assert.sas
|
||||||
|
@li mv_createfolder.sas
|
||||||
|
|
||||||
|
**/
|
||||||
|
|
||||||
|
options mprint sgen;
|
||||||
|
|
||||||
|
%let folder=%mf_uid();
|
||||||
|
|
||||||
|
/* create a folder */
|
||||||
|
%mv_createfolder(path=&mcTestAppLoc/temp/&folder)
|
||||||
|
|
||||||
|
|
||||||
|
%mp_assert(
|
||||||
|
iftrue=(%mfv_existfolder(&mcTestAppLoc/temp/&folder)=1),
|
||||||
|
desc=Check if created folder exists
|
||||||
|
)
|
||||||
|
|
||||||
|
%mp_assert(
|
||||||
|
iftrue=(%mfv_existfolder(&mcTestAppLoc/temp/&folder/%mf_uid()/noway)=0),
|
||||||
|
desc=Check if non created folder does not exist
|
||||||
|
)
|
||||||
45
viya/mfv_existfolder.sas
Normal file
45
viya/mfv_existfolder.sas
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
/**
|
||||||
|
@file
|
||||||
|
@brief Checks whether a folder exists in SAS Drive
|
||||||
|
@details Returns 1 if the folder exists, and 0 if it doesn't. Works by
|
||||||
|
attempting to assign a fileref with the filesrvc engine. If not found, the
|
||||||
|
syscc is automatically set to a non zero value - so in this case it is reset.
|
||||||
|
To avoid hiding issues, there is therefore a test at the start to ensure the
|
||||||
|
syscc is zero.
|
||||||
|
|
||||||
|
Usage:
|
||||||
|
|
||||||
|
%put %mfv_existfolder(/does/exist);
|
||||||
|
%put %mfv_existfolder(/does/not/exist);
|
||||||
|
|
||||||
|
@param path The path to the folder on SAS drive
|
||||||
|
|
||||||
|
<h4> SAS Macros </h4>
|
||||||
|
@li mf_abort.sas
|
||||||
|
@li mf_getuniquefileref.sas
|
||||||
|
|
||||||
|
@version 3.5
|
||||||
|
@author [Allan Bowe](https://www.linkedin.com/in/allanbowe/)
|
||||||
|
**/
|
||||||
|
|
||||||
|
%macro mfv_existfolder(path
|
||||||
|
)/*/STORE SOURCE*/;
|
||||||
|
|
||||||
|
%mf_abort(
|
||||||
|
iftrue=(&syscc ne 0),
|
||||||
|
msg=Cannot enter mfv_existfolder.sas with syscc=&syscc
|
||||||
|
)
|
||||||
|
|
||||||
|
%local fref rc;
|
||||||
|
%let fref=%mf_getuniquefileref();
|
||||||
|
|
||||||
|
%if %sysfunc(filename(fref,,filesrvc,folderPath="&path"))=0 %then %do;
|
||||||
|
1
|
||||||
|
%let rc=%sysfunc(filename(fref));
|
||||||
|
%end;
|
||||||
|
%else %do;
|
||||||
|
0
|
||||||
|
%let syscc=0;
|
||||||
|
%end;
|
||||||
|
|
||||||
|
%mend mfv_existfolder;
|
||||||
Reference in New Issue
Block a user