티스토리 뷰
/*
** 안녕하세요, doriri입니다.
** rename 함수에 대해서 설명하고자합니다.
** 글을 쓰기위해서 사진파일을들 순서대로 번호써놧는데 1~16번까지있엇으나..
** 1번하고 2번사이에 사진하나를 빼먹었더라고요 ㅠㅠ
** 그런데 막상 2번~16번을 +1씩 땡겨주려고 하니까 귀찮아서
** 그냥 C언어로 코딩해서 이름을바꿧습니다.
** 이것만보면 얘가 뭔소리를 하는지... 하실거같아서 밑에 소스와 설명을 적어두겠습니다!
*/
함수명 : rename
사용 : rename( 파일or디렉토리명, 변경될파일or디렉토리명 );
반환값 : 성공 = 0, 실패 = -1
+
함수명 : sprintf
사용 : sprintf( 저장될 변수, "변수에 저장할 값", 변수);
ex) char buf[50];
int i=10;
sprintf( buf, "helloworld? %d", i );
buf 에 담긴 값 = "helloworld? 10
저같은경우
C:\\Users\\MHHW\\Desktop\\tistory\\eclipse를 사용해보자 -3\\
폴더에있는 eclipse -1, eclipse -2 와 같은 파일이였기에 설정을 이렇게해줫습니다.
※경로 지정할때 \는 두개써줘야 인식합니다.
ex) printf(" \" '); 와 같이 " 를 출력하기 위해서는 \ 가 필요하듯이 \는 \\가 되어야합니다.
#include <stdio.h>
#include <direct.h> //rename
void main(){
int i, result;
char str[] = "C:\\Users\\MHHW\\Desktop\\tistory\\eclipse를 사용해보자 -3\\eclipse -";
//\ 경로지정은 \\ 로 두개적어주셔야합니다.
char str2[100];
char str3[100];
for (i = 15; i > 1; i--){ // eclipse -15 부터 eclipse -2 까지 진행하겠습니다.
sprintf(str2, "%s%d.png", str, i); //str2에 str + i + .png 저장
sprintf(str3, "%s%d.png", str, i + 1); //str2에 str + i+1 + .png 저장
result = rename(str2, str3); //rename을 통해 str2경로의 파일을찾고, str3경로의 파일로 저장
//rename(파일or디렉토리명,변경될파일or디렉토리명);
//반환값 : 성공 = 0, 실패 = -1
if (result == 0){
printf("이름 변경 성공");
}
else{
perror("이름 변경 실패 - ");
}
printf("\n");
}
}
사용결과
1. ㅠㅠ 저 eclipse -17을 eclipse -2 로 변경하고싶은데 다른파일들 이름을 다 +1 씩해줘야 가능
2. 하지만 소스를 제작하여 실행하니
이름 변경 성공이란 단어와 함께 eclipse -15부터 eclipse -2 까지 숫자가 하나씩증가!!
3. eclipse -17을 eclipse -2 로 바꾸면서 뿌듯뿌듯 정리되었습니다
/*
** 음.. 소스를 제작해본 결과 나중에도 이런상황이있으면 쉽게 해결하는 좋은점이있다!!!
** 라곤 말하지만 사실 그시간에 바꿧으면 더빨리했겟지..?
** 그래도 소스를 제작하고 결과가 성공하는 장면은 아무리 해봐도 재미있고 뿌듯하죠
** 저와 같은상황을 맞이해보신분들, 한번 사용해보거나, 참고하셔서 새로운 방법으로 해결해보세요~
*/