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 を次のいずれかの値に設定します。

errno 状態
EACCES 指定された newname ファイルまたはディレクトリは既に存在しているか、作成できませんでした (無効なパス)、または oldname ディレクトリであり、 newname 別のパスを指定します。
ENOENT oldname によって指定されたファイルまたはパスが見つかりません。
EINVAL 名前に無効な文字が含まれています。

その他の戻り値については、「_doserrno_errnosyserrlist_sys_nerr」を参照してください。

解説

rename 関数では、oldname によって指定されたファイルまたはディレクトリの名前を newname によって指定された名前に変更します。 古い名前は、既存のファイルまたはディレクトリのパスである必要があります。 新しい名前を既存のファイルまたはディレクトリのパスにすることはできません。 rename を使用して、newname 引数で別のパスを指定することにより、1 つのディレクトリまたはデバイスから別のディレクトリまたはデバイスにファイルを移動することができます。 ただし、ディレクトリの移動には使用 rename できません。 ディレクトリの名前を変更することはできますが、移動はできません。

_wrename_renameのワイド文字バージョンであり、 _wrename の引数はワイド文字列です。 それ以外では、_wrename_rename の動作は同じです。

既定では、この関数のグローバル状態の適用対象は、アプリケーションになります。 この動作を変更するには、「CRT のグローバル状態」を参照してください

汎用テキスト ルーチンのマップ

TCHAR.H ルーチン _UNICODE_MBCS が定義されていない _MBCS が定義されている _UNICODE が定義されている
_trename rename rename _wrename

必要条件

ルーチンによって返される値 必須ヘッダー
rename <io.h> または <stdio.h>
_wrename <stdio.h> または <wchar.h>

互換性の詳細については、「 Compatibility」を参照してください。

ライブラリ

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'

関連項目

ファイル処理