C言語 ファイル名 フォルダ名の変更と移動 - stdio.h - [ rename ]

2008.09.25 Thursday | by LRESULT


ァイル名、ディレクトリ(フォルダ)名を変更するには、rename()を使います。

rename()と言うと、名前を変えるだけに見えますが、
ファイルやフォルダの移動も出来てしまいます。お得ですね?


rename
書式 int rename( const char *oldname, const char *newname )
機能 ファイル名、フォルダ名の変更と移動
引数 const char *oldname : 元のファイル名(or フォルダ名)
const char *newname : 新しいファイル名(or フォルダ名)
戻り値 成功すると、0を返し、
失敗すると、0以外を返します。





サンプルコード1
元ファイル名「old.txt」を、新しいファイル名「new.txt」に変更してみます。
#include <stdio.h>

int main(void)
{
  char *oldname = "old.txt";
  char *newname = "new.txt";

  if( rename( oldname, newname ) == 0 ){
    printf( "%sから%sに名前を変更/移動しました", oldname, newname );
  }
  else{
    printf( "名前の変更/移動に失敗しました" );
  }
  return 0;
}



結果
old.txtからnew.txtに名前を変更/移動しました
成功すると、上記のように表示されます。

これで変更出来たはずです。
フォルダ名の変更も、同じ手順で変更出来ます。
ちなみに、ファイル読み込みや書き込み時のようにfopen()は必要ありません。



サンプルコード2
元フォルダ「SrcFolder」を、1つ上の階層に移動してみます。
#include <stdio.h>

int main(void)
{
  char *oldname = "SrcFolder";
  char *newname = "..¥¥SrcFolder";

  if( rename( oldname, newname ) == 0 ){
    printf( "%sから%sに名前を変更/移動しました", oldname, newname );
  }
  else{
    printf( "名前の変更/移動に失敗しました" );
  }
  return 0;
}



結果
SrcFolderから..¥SrcFolderに名前を変更/移動しました
上手く移動出来たでしょうか?
フォルダ内にファイルがあっても、まとめて移動出来ます。
..¥¥」 で、1つ上の階層という意味です。

また、「"C:¥¥Program Files¥¥Microsoft Visual Studio 8¥¥test.txt"
という形のフルパスでも記載できます。

カテゴリ:C言語 stdio.h | 23:08 | comments(0) | trackbacks(0) | -


コメントする











この記事のトラックバックURL

http://simd.jugem.jp/trackback/54

トラックバック