ディレクトリ操作の関数を使うには「direct.h」をインクルードする必要があります。
ディレクトリを作成するには「_mkdir」関数を使用します。この関数で作ることができる
ディレクトリは1つだけです。つまり、からのドライブDがあったとし、「D:\123\abc」を作りたいと思った場合、
まず「D:\123」を作り、次に「D:\123\abc」を作る必要があります。
なお、ディレクトリという概念はすべてのプラットフォーム(OSなど)に共通の概念ではないため、
プラットフォームによっては使用できない場合もあります。
関数名 |
_mkdir |
書式 |
int _mkdir( const char* dirname ) |
戻り値 |
-1=エラー 0=この関数が成功した |
機能 |
ディレクトリを作成します。 |
ディレクトリを削除するには「_rmdir」関数を使います。削除しようとするディレクトリの
中は空でなくてはなりません。ファイルやディレクトリが存在するとエラーになります。また、ルートディレクトリや
カレントディレクトリは削除できません。
関数名 |
_rmdir |
書式 |
int _rmdir( const char* dirname ) |
戻り値 |
-1=エラー 0=この関数が成功した |
機能 |
ディレクトリを削除します。 |
カレントディレクトリを変更するには「_chdir」関数を使用します。
関数名 |
_chdir |
書式 |
int _chdir( const char* dirname ) |
戻り値 |
-1=エラー 0=この関数が成功した |
機能 |
カレントディレクトリを変更します。 |
カレントディスクを変更するには「_chdrive」関数を使用します。引数にはドライブレターではなく、
番号を指定します。(Aドライブ=1、Bドライブ=2)
関数名 |
_chdrive |
書式 |
int _chdrive( int drive ) |
戻り値 |
-1=エラー 0=この関数が成功した |
機能 |
カレントディスクを変更します。 |
カレントディスクのカレントディレクトリを取得するには「_getcwd」関数を使用します。引数には
カレントディレクトリ名を格納するバッファーと、そのバッファーの大きさを指定します。
関数名 |
_getcwd |
書式 |
char* _getcwd( char* buffer, int maxlen ) |
戻り値 |
NULL=エラー NULL≠この関数が成功した |
機能 |
カレントディスクのカレントディレクトリを取得します。 |
指定したディスクのカレントディレクトリを取得するには「_getdcwd」関数を使用します。引数には
取得するドライブ(Aドライブ=1、Bドライブ=2)、カレントディレクトリ名を格納するバッファーと、そのバッファーの
大きさを指定します。
関数名 |
_getdcwd |
書式 |
char* _getdcwd( int drive, char* buffer, int maxlen ) |
戻り値 |
NULL=エラー NULL≠この関数が成功した |
機能 |
指定したディスクのカレントディレクトリを取得します。 |
カレントドライブを取得するには「_getdcwd」関数を使用します。
関数名 |
_getdrive |
書式 |
int _getdrive() |
戻り値 |
ドライブ番号(1=Aドライブ,2=Bドライブ) |
機能 |
カレントドライブを取得します。 |
相対パスを絶対パスに変換するには「_fullpath」関数を使用します。
関数名 |
_fullpath |
書式 |
char* _fullpath( char* absPath, const char* relPath, size_t maxLength ) |
戻り値 |
NULL=変換できなかった。(バッファサイズが小さい、存在しないパスなど) NULL≠変換された。 |
機能 |
relPathで与えられた相対パスを絶対パスに変換しabsPathに格納する。 ただしabsPathのバッファサイズはmaxLengthとする。
|
ディレクトリを作成し、dirコマンドを実行し、ディレクトリを削除するサンプルプログラムを示します。
#include <stdio.h>
#include <direct.h>
#include <stdlib.h>
void main( void ){
if( _mkdir( "\\testtmp" ) == 0 ){
printf( "ディレクトリ '\\testtmp' が正常に作成されました。\n" );
system( "dir \\testtmp" );
if( _rmdir( "\\testtmp" ) == 0 )
printf( "ディレクトリ '\\testtmp' が正常に削除されました。\n" );
else
printf( "ディレクトリ '\\testtmp' が削除できません。\n" );
}
else
printf( "ディレクトリ '\\testtmp' が作成できません。\n" );
}
|
ディレクトリ '\testtmp' が正常に作成されました。
ドライブ C のボリューム ラベルがありません。
ボリューム シリアル番号は 07E5-4324 です
C:\testtmp のディレクトリ
2005/06/12 03:43 .
2005/06/12 03:43 ..
0 個のファイル 0 バイト
2 個のディレクトリ 3,427,696,640 バイトの空き領域
ディレクトリ '\testtmp' が正常に削除されました。
|