dirread()
Definition
STRING dirread ( <INT handle> )
Given a path with wildcards ('*' or '?' characters), returns the first file that matches and, in every next call, all matching files found until no more files exists. It then returns NIL. Presumebly it’s somewhat similair to glob().
Also you can read multiple directories with different search criteria. This is usefull for filemanagers and dialogboxes, when you only want to list files of a specific type.
Parameters
- INT handle - The id of the folder opened with
diropen().
Returns
STRING : The filename that matches with the wildcard search pattern.
Example
IMPORT "mod_dir";
IMPORT "mod_say";
IMPORT "mod_debug";
IMPORT "mod_key";
GLOBAL
int dir_id[9];
string dir_result[9];
string directory1="c:\windows\*.exe";
string directory2="c:\windows\*.dll";
string directory3="c:\windows\*.txt";
PROCESS main();
BEGIN
dir_id[0]=diropen(directory1);
dir_id[1]=diropen(directory2);
dir_id[2]=diropen(directory3);
/* print all exe files */
say("");
say("dirread test");
say("");
say("");
say("the directory is: "+directory1);
say("");
say("reading directory.....");
say("");
REPEAT
IF (key(_esc))
say("<aborted>");
BREAK;
END
// read the dir
dir_result[0]=dirread(dir_id[0]);
say(dir_result[0]);
FRAME;
UNTIL (dir_result[0]=="")
/* print all dll files */
say("");
say("dirread test");
say("");
say("");
say("the directory is: "+directory2);
say("");
say("reading directory.....");
say("");
REPEAT
IF (key(_esc))
say("<aborted>");
BREAK;
END
// read the dir
dir_result[1]=dirread(dir_id[1]);
say(dir_result[1]);
FRAME;
UNTIL (dir_result[1]=="")
/* print all txt files */
say("");
say("dirread test");
say("");
say("");
say("the directory is: "+directory3);
say("");
say("reading directory.....");
say("");
REPEAT
IF (key(_esc))
say("<aborted>");
BREAK;
END
// read the dir
dir_result[2]=dirread(dir_id[2]);
say(dir_result[2]);
FRAME;
UNTIL (dir_result[2]=="")
say("closing the directory");
dirclose(dir_id[0]);
dirclose(dir_id[1]);
dirclose(dir_id[2]);
END