filename mydir "C:\Users\curio\Desktop\Rough";
data file_list;
length full_filename filename folder basename extension $256;
length file_size file_created file_modified $64;
folder = pathname("mydir");
did = dopen("mydir");
if did > 0 then do;
nfiles = dnum(did);
do i = 1 to nfiles;
filename = dread(did, i);
full_filename = cats(folder, "\", filename);
rc1 = filename("fref", full_filename);
if rc1 = 0 then do;
fid = fopen("fref");
if fid > 0 then do;
file_size = strip(put(fsize(fid), best.));
file_modified = finfo(fid, "Last Modified");
file_created = finfo(fid, "Create Time");
rc2 = fclose(fid);
end;
end;
if index(filename, ".") then do;
extension = scan(filename, -1, ".");
basename = substr(filename, 1, length(filename) - length(extension) - 1);
end;
else do;
extension = "";
basename = filename;
end;
output;
end;
rc = dclose(did);
end;
drop did nfiles i rc rc1 rc2 fid;
run;
- We use `dopen()` and `dread()` to list all files in the folder.
- The `filename()` and `fopen()` functions allow us to inspect each file.
- `fsize()` retrieves file size, while `finfo()` gets creation and modification timestamps.
- These details are stored in `file_size`, `file_created`, and `file_modified`.
- Filename and extension are extracted using `scan()` and `substr()`.