2014年11月21日金曜日

ディレクトリ内のファイル名とフォルダ名を取得する(DOPEN関数編)



たとえば、「C:\TEST」からファイル名とフォルダ名を取得したいとします。



filename DIR1 "C:\TEST";

data DT1 ;
   length  VAR  $400 ;

   *** ディレクトリを開く ;
   did = dopen("DIR1") ;

   *** ファイル・フォルダ名を変数に格納 ;
   do i = 1 to dnum( did ) ;
       VAR = dread( did , i ) ;
       output ;
   end;

   rc = dclose( did ) ;
run;

 VAR  
  aaa 
  bbb.txt 
  ccc.xlsx  



解説

① DOPEN関数でディレクトリを開きます。

構文 … DOPEN( "開きたいディレクトリが割り当てられたファイル参照名" )

戻り値として開いたディレクトリの識別番号が返されるので、その番号を変数didに入れてます。



② DNUM関数でディレクトリ内のメンバ数を取得できます。

構文 … DNUM( ディレクトリの識別番号 )



③ DREAD関数でディレクトリ内のメンバ名を取得できます。

構文 … DREAD( ディレクトリの識別番号 , メンバの通し番号 )

つまりファイル・フォルダの数だけDOループをまわして、ディレクトリ内の全ファイル・フォルダ名を取得しています。



④ DCLOSE関数でディレクトリを閉じます。

構文 … DCLOSE( ディレクトリの識別番号 )




0 件のコメント:

コメントを投稿