2019年11月20日水曜日

外部ファイルの属性情報(更新日時やファイルサイズなど)を取得する方法 (FOPEN関数編)




※今回使用する「FOPEN関数」を使用すると「SASが裏で対象のファイルを開く」点にご注意ください。
開いてる間はSAS以外から編集が出来ないなども起こるかもしれません。




では以下 SAS Ondemand for Academics 上に配置したファイルの属性情報を取得してみます。









filename test 'ファイルのパス/mysas/sakura1.jpg';

data out1;
     /* ファイルを開く */
     fid = fopen( 'test' );

     /* ファイル属性を取得 */
     length name $50. info $1000.;

     do  i = 1 to foptnum( fid );
          name = foptname( fid, i );
          info = finfo( fid, name );
          output;
     end;

     /* ファイルを閉じる */
     rc = fclose( fid );

     keep name info i;
run;


※ 取得される属性情報は、環境や言語設定などによって異なります。
色々な環境で実行する可能性がある場合は、ご注意ください。







解説


FOPEN関数でファイルを開きます。

 FOPEN( "開きたいファイルが割り当てられたファイル参照名" )

戻り値として、開いたファイルの識別番号が返されるので、その番号を変数FIDに入れてます。
この識別番号は、以降の処理で使います。



FOPTNUM関数でファイルの属性数を取得できます。

 FOPTNUM( ファイルの識別番号 )

ここで、得られた属性数だけDOループをまわして、以下の関数で全ての属性値を取得しています。



FOPTNAME関数でファイル属性名を取得できます。("作成日"や"更新日"といった属性名の部分)

 FOPTNAME( ファイルの識別番号 , 属性番号 )



FINFO関数でファイル属性値を取得できます。

 FINFO( ファイルの識別番号 , ファイル属性名 )



FCLOSE関数でファイルを閉じます。

 FCLOSE( ファイルの識別番号 )


0 件のコメント:

コメントを投稿