実行時関数:指定したドライブ上の現在の作業ディレクトリのパスを得ます。
モジュール:USE DFLIB
形式
result = GETDRIVEDIRQQ (drivedir)
drivedir
(入力,出力) CHARACTER*(*)。入力では,現在の作業ディレクトリのドライブを指定します。出力では,指定したドライブ上の現在のディレクトリを含む文字列が d:\dir の形式で返されます。
結果
結果の型は INTEGER(4) です。結果は,指定したドライブ上のディレクトリのフル・パスの長さ (バイト) です。文字バッファ drivedir の大きさよりもパスが長い場合,ゼロが返されます。
GETDRIVEDIRQQ を呼び出す前に,ドライブ文字を drivedir に置くことによって,現在の作業ディレクトリを返すためのドライブを指定します。現在のドライブを確実に得るには,シンボル定数 FILE$CURDRIVE (\DF98\INCLUDE サブディレクトリの DFLIB.F90 に定義されています) を drivedir に代入します。
ドライブは 1 つのアルファベット文字で識別されるため,GETDRIVEDIRQQ は drivedir の第 1 文字のみを検証します。たとえば,drivedir がパス c:\fps90\bin を含んでいる場合,GETDRIVEDIRQQ(drivedir) はドライブ C 上の現在の作業ディレクトリを返し,パスの残りの部分を無視します。ドライブ文字は,大文字小文字の区別はありません。
返されるパスの長さは,ディレクトリが drivedir で指定されたドライブ上でどの位深く入れ子になっているかに依存します。プル・パスが drivedir の大きさよりも長い場合,GETDRIVEDIRQQ は drivedir に収まるパスの一部のみを返します。長いバスに遭遇した場合,大きさ $MAXPATH ($MAXPATH = 260) のバッファを割り当ててください。
互換性
CONSOLE STANDARD GRAPHICS QUICKWIN GRAPHICS WINDOWS DLL LIB
関連情報
CHANGEDIRQQ,CHANGEDRIVEQQ,GETDRIVESIZEQQ,GETDRIVESQQ,GETLASTERRORQQ,SPLITPATHQQ
例
! GETDRIVEDIRQQ の例 USE DFLIB CHARACTER($MAXPATH) dir INTEGER(4) length ! 現在のディレクトリを得ます dir = FILE$CURDRIVE length = GETDRIVEDIRQQ(dir) IF (length .GT. 0) THEN WRITE (*,*) 'Current directory is: ' WRITE (*,*) dir ELSE WRITE (*,*) 'Failed to get current directory' END IF END