前のページ|次のページ

DINFO関数

ディレクトリの情報を返します。

カテゴリ: 外部ファイル
Windows固有: 使用可能な情報項目は、ディレクトリパス名のみです。
UNIX固有: 使用可能な情報項目は、ディレクトリパス名、所有者、グループ、権限、最終変更時間です。
z/OS固有: 使用可能な情報項目は、システム構成によって異なります。

構文

必須引数

directory-id

DOPEN関数によってディレクトリが開かれたときに割り当てられた識別子を指定する数値変数です。

information-item

取得される情報項目を指定する文字定数、変数または式です。DINFOは、information-item引数の値が無効な場合は空白を返します。使用可能な情報は、動作環境により異なります。

詳細

概要

DOPEN関数で開かれるディレクトリは、directory-idの値によって識別されます。使用可能なシステム依存のディレクトリ情報項目の名前を確認するには、DOPTNAME関数を使用します。使用可能なディレクトリ情報項目数を確認するには、DOPTNUM関数を使用します。
directory-idが連結ディレクトリのリストを指す場合は、Directoryは連結ディレクトリ名のリストになります。
Windows固有: 使用可能な情報項目は、Directoryのみです。Directoryは、directory-idのパス名です。
UNIX固有: 使用可能な情報項目は、ディレクトリパス名(directory-idのパス名)、所有者、グループ、権限、最終変更時間です。
z/OS固有: 任意のディレクトリに使用可能な情報項目は、システム構成によって異なります。

z/OS環境でUFSディレクトリに使用可能なディレクトリ情報項目

DINFO関数、DOPTNAME関数およびDOPTNUM関数では、z/OS環境のUNIXファイルシステム(UFS)ディレクトリに対して次のディレクトリ情報項目をサポートしています。
z/OS環境: UFSディレクトリに使用可能なディレクトリ情報項目
項目
項目識別子
定義
1
Filename
ディレクトリ名
2
Access Permission
所有者、グループおよびその他の読み取り権限、書き込み権限および実行権限
3
リンクの数
ディレクトリのリンクの数
4
Owner Name
所有者のユーザーID
5
Group Name
所有者のアクセスグループの名前
6
Filesize
ファイルのサイズ
7
Last Modified
コンテンツが最後に変更された日付

z/OS環境でPDSに使用可能なディレクトリ情報項目

DINFO関数、DOPTNAME関数およびDOPTNUM関数では、z/OS環境のPDSに対して次のディレクトリ情報項目をサポートしています。
z/OS環境: PDSのディレクトリ情報項目
項目
項目識別子
定義
1
Dsname
PDS名
2
Unit
ディスクの種類
3
Volume
データセットが格納されているボリューム
4
Disp
処理
5
Blksize
ブロックサイズ
6
Lrecl
レコード長
7
Recfm
レコードの形式

z/OS環境でPDSEに使用可能なディレクトリ情報項目

DINFO関数、DOPTNAME関数およびDOPTNUM関数では、z/OS環境のPDSEに対して次のディレクトリ情報項目をサポートしています。
z/OS環境: PDSEのディレクトリ情報項目
項目
項目識別子
定義
1
Dsname
PDSE名
2
Dsntype
ディレクトリの種類
3
Unit
ディスクの種類
4
Volume
データセットが格納されているボリューム
5
Disp
処理
6
Blksize
ブロックサイズ
7
Lrecl
レコード長
8
Recfm
レコードの形式

例1: DINFOを使用してディレクトリの情報を返す

次の例では、ディレクトリMYDIRを開き、使用可能なディレクトリ情報項目数を確認して最後の項目の値を取得します。
%let filrf=MYDIR;
%let rc=%sysfunc(filename(filrf, "physical-name"));
%let did=%sysfunc(dopen(&filrf));
%let numopts=%sysfunc(doptnum(&did));
%let foption=%sysfunc(doptname(&did, &numopts));
%let charval=%sysfunc(dinfo(&did, &foption));
%let rc=%sysfunc(dclose(&did));

例2: WindowsおよびUNIX: DATAステップ内でDINFOを使用する

次の例では、各ディレクトリ情報項目の名前と値を含むデータセットを作成します。
data diropts;
   length optname $ 32 optval $ 40;
   rc=filename("mydir", "physical-name");
   put "rc = 0 if the directory exists: " rc=;
   did=dopen("mydir");
   numopts=doptnum(did);
   do i=1 to numopts;
      optname=doptname(did, i);
      put i= optname=;
      optval=dinfo(did, foption);
      put optval=;
   end;
run;
WindowsのSASログの例
Windowsの単一の情報項目を示す出力の例
UNIXのSASログの例
UNIXの5つの情報項目、Directory、Owner Name、Group Name、Access PermissionおよびLast Modifiedを示す出力の例

例3: z/OS: UNIXファイルシステム(UFS) ディレクトリの情報

この例では、UFSディレクトリの情報項目名と値を含む出力を生成します。
data _null_;
   length opt $100 optval $100;
   /* Allocate directory */
   rc=FILENAME('mydir', '/u/userid');
   /* Open directory */
   dirid=DOPEN('mydir');
   /* Get number of information items */
   infocnt=DOPTNUM(dirid);
   /* Retrieve information items and */
   /* print to log                   */
   put @1 'Information for a UNIX
      File System Directory:';
   do j=1 to infocnt;
      opt=DOPTNAME(dirid,j);
      optval=DINFO(dirid,upcase(opt));
      put @1 opt @20 optval;
   end;
   /* Close the directory */
   rc=DCLOSE(dirid);
   /* Deallocate the directory */
   rc=FILENAME('mydir');
run;
UFSディレクトリの情報
Information for a UNIX System Services Directory:Directory Name          /u/userid Access Permission  drwxr-xr-x Number of Links    17 Owner Name         MYUSER Group Name         GRP Last Modified      Apr 26 07:18 Created            Jan 9 2007 NOTE:The DATA statement used 0.09 CPU seconds and 5203K.

例4: z/OS: PDSディレクトリの情報

この例では、PDSの情報項目名と値を出力します。
data _null_;
   length opt $100 optval $100;
   /* Allocate directory */
   rc=FILENAME('mydir', 'userid.mail.text');
   /* Open directory */
   dirid=DOPEN('mydir');
   /* Get number of information items */
   infocnt=DOPTNUM(dirid);
   /* Retrieve information items and */
   /* print to log                   */
   put @1 'Information for a PDS:';
   do j=1 to infocnt;
      opt=DOPTNAME(dirid,j);
      optval=DINFO(dirid,upcase(opt));
      put @1 opt @20 optval;
   end;
   /* Close the directory */
   rc=DCLOSE(dirid);
   /* Deallocate the directory */
   rc=FILENAME('mydir');
run;
PDSディレクトリの情報
Information for a PDS:Dsname             USERID.MAIL.TEXT Unit               3380 Volume             ABC005 Disp               SHR Blksize            6160 Lrecl              80 Recfm              FB Creation           2005/10/03 NOTE:The DATA statement used 0.07 CPU seconds and 5211K.

例5: z/OS: PDSEディレクトリの情報

この例では、PDSEのディレクトリ情報を生成します。
data _null_;
   length opt $100 optval $100;
   /* Allocate directory */
   rc=FILENAME('mydir', 'userid.pdse.src');
   /* Open directory */
   dirid=DOPEN('mydir');
   /* Get number of information items */
   infocnt=DOPTNUM(dirid);
   /* Retrieve information items and */
   /* print to log                   */
   put @1 'Information for a PDSE:';
   do j=1 to infocnt;
      opt=DOPTNAME(dirid,j);
      optval=DINFO(dirid,upcase(opt));
      put @1 opt @20 optval;
   end;
   /* Close the directory */
   rc=DCLOSE(dirid);
   /* Deallocate the directory */
   rc=FILENAME('mydir');
run;
PDSEディレクトリの情報
Information for a PDSE:Dsname             USERID.PDSE.SRC Dsntype            PDSE Unit               3380 Volume             ABC002 Disp               SHR Blksize            260 Lrecl              254 Recfm              VB Creation           2005/10/03 NOTE:The DATA statement used 0.08 CPU seconds and 5203K.

関連項目:

前のページ|次のページ|ページの先頭へ