2
我有一個小的STP其中列出了UNIX的服務器上指定目錄下所有文件/子目錄。 問題是,我datastep只返回對象的名稱,但如果這是一個文件或目錄的信息。列出目錄中的所有文件:如何檢測結果是文件還是子目錄?
我嘗試了一些東西,並有一些想法,但非非常萬無一失,也許有人可以給我一個提示如何我可以得到這個。使用FILEEXISTS
- :
我有什麼到目前爲止已經試過這將返回文件和目錄的真實,所以這並不在這裏
- 工作檢查點。有可能是沒有擴展名的文件(所以沒有一個點),也有名稱中有點的目錄,所以這不是萬無一失的
- 在sas中使用unixfunctionalities:這是禁止在我們的服務器上,所以沒有我的選項
打開一個文件句柄,並做了FINFO,如果它不是一個文件,但這返回警告
一)也許它可能是別的東西,然後一個目錄或文件,或因其他原因
警告b)檢查警告類型檢測不是一個好的解決辦法imo
這裏我的代碼的一部分,我現在用:
filename _folder_ "%bquote(&mydirectory/)";
data x (keep=filepath);
handle=dopen('_folder_');
if handle > 0 then do;
count=dnum(handle);
do i=1 to count;
filepath="&mydirectory"||dread(handle,i);
output;
end;
end;
rc=dclose(handle);
run;
filename _folder_ clear;
/*this part just makes a macrovariable with all results*/
proc sql noprint;
select filepath into: fpath separated by '#' from x;
quit;
/* this macro collects some additional fileinformation from all file in macrovariable fpath and creates a HTML-Ouput*/
%FileAttribs;
Ty,爲我工作,已經在我的宏中有一個文件名和fopen,但沒有得到檢查fid的想法 – kl78