Share via


rename、_wrename

更新 : 2007 年 11 月

ファイルまたはディレクトリの名前を変更します。

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 には、既存のファイル名やディレクトリ名を指定しないでください。引数 newnameoldname とは別のパスを指定して 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'

.NET Framework の相当するアイテム

System::IO::File::Move

参照

参照

ファイル処理