원글(이글루): 2009-12-29 20:35:35
예전 파일명 한번에 바꾸기 귀찮아서 작성한 짜잘한 코드, 몇 년전 보니까 편리하게 nzrename이란게 있더군.
#include <stddef.h>
#include <stdio.h>
#include <sys/types.h>
#include <dirent.h>
/*
[동키고고][애니]Dragon.Ball.088.smi
to
[애니]Dragon Ball 088.smi
*/
void tolower_chars(char *x)
{
int i;
for (i=0;i<strlen(x) ;i++ )
{
x[i]=tolower(x[i]);
}
}
int main (void)
{
DIR *dp;
struct dirent *ep; /* 현재의 디렉토리를 개방해서 dp에 넣어라!!! */
char input[20];
char targetname[36];
char *ptarget;
printf("Example\n");
printf("[동키고고][애니]Dragon.Ball.088.smi\n"
"to\n"
"[애니]Dragon Ball 088.smi\n");
printf("동의 합니까 ? [YES(Y)/NO(ELSE)]");
gets(input);
tolower_chars(input);
if (strcmp(input,"yes") && strcmp(input,"y"))
{
printf("진행 하지 않고 종료합니다.\n");
return;
}
dp = opendir (".");
/* 만일 개방이 됐다면 dp의 엔트리를 읽어서 ep에 넣고 그 구조체에서 d_name멤버를 출력하라. */
if (dp != NULL) {
while (ep = readdir (dp)) {
if (strlen(ep->d_name)==35)
{
if (strstr(ep->d_name,"[동키고고]") != NULL)
{
printf("LEN = %3d ",strlen(ep->d_name));
strcpy(targetname,ep->d_name);
ptarget=&targetname[10];
puts (ep->d_name);
puts (targetname);
puts (ptarget);
ptarget[12]=' ';
ptarget[13]='B';
ptarget[17]=' ';
puts (ptarget);
rename(ep->d_name,ptarget);
}
};
}
(void) closedir (dp);
}
/* 개방이 안됐다면 에러 메시지 출력. . . */
else
puts ("Couldn't open the directory. ");
return 0;
}
'IT > 프로그래밍' 카테고리의 다른 글
[Linux] 공유 라이브러리 생성 (0) | 2023.09.13 |
---|---|
[Linux] 정적 라이브러리 생성 (0) | 2023.09.13 |
[함수] getopt, getopt_long (0) | 2023.09.13 |
[make] Makefile 생성법 (0) | 2023.09.13 |
[html] Java Script를 이용한 Redirect (0) | 2023.09.13 |