Functions and CALL Routines |
Opens a directory, and returns a directory identifier value.
-
fileref
-
is a character constant, variable, or expression
that specifies the fileref assigned to the directory.
Restriction: |
You must associate
a fileref with the directory before calling DOPEN. |
DOPEN opens a directory and returns a
directory identifier value (a number greater than 0) that is used to identify
the open directory in other SAS external file access functions. If the directory
could not be opened, DOPEN returns 0, and you can obtain the error message
by calling the SYSMSG function. The directory to be opened must be identified
by a fileref. You can assign filerefs using the FILENAME statement or the
FILENAME external file access function. Under some operating environments,
you can also assign filerefs using system commands.
If you call the DOPEN function from a macro, then the result of the
call is valid only when the result is passed to functions in a macro. If you
call the DOPEN function from the DATA step, then the result is valid only
when the result is passed to functions in the same DATA
step.
Operating Environment Information: The term
directory that is used in the description of this function
and related SAS external file access functions refers to an aggregate grouping
of files managed by the operating environment. Different operating environments
identify such groupings with different names, such as directory, subdirectory,
folder, MACLIB, or partitioned data set. For details, see the SAS documentation
for your operating environment. ![[cautionend]](../../../../common/63294/HTML/default/images/cautend.gif)
This example assigns the fileref MYDIR to a directory. It uses DOPEN to
open the directory. DOPTNUM determines the number of system-dependent directory
information items available, and DCLOSE closes the directory:
%let filrf=MYDIR;
%let rc=%sysfunc(filename(filrf,physical-name));
%let did=%sysfunc(dopen(&filrf));
%let infocnt=%sysfunc(doptnum(&did));
%let rc=%sysfunc(dclose(&did));
This example opens a directory for processing within a DATA step.
data _null_;
drop rc did;
rc=filename("mydir","physical-name");
did=dopen("mydir");
if did > 0 then do;
...more statements...
end;
else do;
msg=sysmsg();
put msg;
end;
run;
Copyright © 2011 by SAS Institute Inc., Cary, NC, USA. All rights reserved.