rename、_wrename
ファイルまたはディレクトリの名前を変更します。
int rename(
const char *oldname,
const char *newname
);
int _wrename(
const wchar_t *oldname,
const wchar_t *newname
);
パラメーター
oldname
変更前の名前へのポインター。newname
変更後の名前へのポインター。
戻り値
正常終了した場合は 0 を返します。 エラーが発生した場合は 0 以外の値を返し、変数 errno に次のいずれかの値を設定します。
EACCES
newname で指定したファイルまたはディレクトリが既に存在するか、パスが無効であるため作成できませんでした。または、oldname がディレクトリであるのに、newname で別のパスが指定されています。ENOENT
oldname で指定したファイルまたはパスが見つかりません。EINVAL
名前に無効な文字が含まれています。
その他の戻り値については、「_doserrno、errno、_sys_errlist、および _sys_nerr」を参照してください。
解説
rename 関数は、oldname で指定したファイルまたはディレクトリの名前を newname で指定した名前に変更します。 oldname には、既存のファイルまたはディレクトリのパスを指定します。 newname には、既存のファイル名やディレクトリ名を指定しないでください。 引数 newname に oldname とは別のパスを指定して rename 関数を使用すると、ファイルをディレクトリ間やデバイス間で移動できます。 ただし、rename 関数を使用してディレクトリを移動することはできません。 ディレクトリの場合、名前は変更できますが、移動はできません。
_wrename は _rename のワイド文字バージョンであり、_wrename の引数はワイド文字列です。 それ以外では、_wrename と _rename の動作は同じです。
汎用テキスト ルーチンのマップ
TCHAR.H のルーチン |
_UNICODE および _MBCS が未定義の場合 |
_MBCS が定義されている場合 |
_UNICODE が定義されている場合 |
---|---|---|---|
_trename |
rename |
rename |
_wrename |
必要条件
ルーチン |
必須ヘッダー |
---|---|
rename |
<io.h> または <stdio.h> |
_wrename |
<stdio.h> または <wchar.h> |
互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。
ライブラリ
C ランタイム ライブラリのすべてのバージョン。
使用例
// crt_renamer.c
/* This program attempts to rename a file named
* CRT_RENAMER.OBJ to CRT_RENAMER.JBO. For this operation
* to succeed, a file named CRT_RENAMER.OBJ must exist and
* a file named CRT_RENAMER.JBO must not exist.
*/
#include <stdio.h>
int main( void )
{
int result;
char old[] = "CRT_RENAMER.OBJ", new[] = "CRT_RENAMER.JBO";
/* Attempt to rename file: */
result = rename( old, new );
if( result != 0 )
printf( "Could not rename '%s'\n", old );
else
printf( "File '%s' renamed to '%s'\n", old, new );
}
出力
File 'CRT_RENAMER.OBJ' renamed to 'CRT_RENAMER.JBO'