Visual Studio/C 기초

C언어 파일 이름 변경하기 [rename()]

낙락장송s 2013. 5. 15. 16:46

파일 이름을 변경하기 위해서는 rename()함수를 사용하여야 합니다.

한가지 주의하실 점은, 파일 이름을 변경하기 위해선 기존 이름과 새 이름의 디스크 드라이버 볼륨이 동일해야 한다는 점입니다. 서로 다른 디스크 드라이브에 존재하는 파일의 이름을 변경하는 것은 불가능합니다.

함수 rename()의 동작이 성공적이라면 0값을 돌려주고, 다른 에러가 발생하면 -1값을 돌려줍니다.

에러의 종류는 다음과 같습니다.

1. 기존의 파일이 존재하지 않을 경우

2. 변경할 이름의 파일이 이미 존재할 경우

3. 서로 다른 디스크에서 이름을 변경 하려고 할 경우 (ex - c:\hello.bat ->d:\hi.bat)

 

 

#include <stdio.h>

main()
{
 char oldname[80], newname[80];
 printf("기존 파일 이름을 입력해주세요 : ");
 gets(oldname);
 printf("변경할 파일 이름을 입력해주세요 : ");
 gets(newname);
 if(rename(oldname,newname)==0)
  printf("파일%s가 %s로 성공적으로 이름이 변경되었습니다.\n",oldname,newname);
 else
  fprintf(stderr,"파일 %s의 이름을 변경하는데 실패했습니다.\n",oldname);

 

같은 C드라이브에 지정했고, 파일이 존재하며, 변경할 이름이 존재하지 않는 조건을 충족하여 성공했습니다.