본문 바로가기

Programming/▷ C

[C] 파일 확장자 변경 예시

처음에 배열에 문자열을 바꿔주고 대입하여 rename 함수를 통해 확장자를 변경하려 했으나 

이상하게 파일 PATH가 절대경로 로 지정이 되어있어야 rename이 적용이 되었다.

그래서 _splitpath 를 통해 파일 path 를 분리하고 sprintf 를 통해 확장자를 변경하여 rename을 해주었다.

[파일 확장자 변경 예시]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#pragma warning ( disable : 4996 )
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <io.h>
 
void ChangeExt(char *path, char *newext)
{
    char drive[_MAX_DRIVE];
    char dir[_MAX_DIR];
    char fname[_MAX_FNAME];
    char ext[_MAX_EXT];
 
    _splitpath(path, drive, dir, fname, ext);
    sprintf(path, "%s%s%s%s", drive, dir, fname, newext);
}
 
int main()
{
    char filename[_MAX_PATH] = "C:\\test\\test.txt";
    char filenname[_MAX_PATH];
 
    strcpy(filenname, filename);
    ChangeExt(filename, ".exe");
 
    rename(filenname, filename);
 
    printf("%s %s \n", filenname, filename);
    return 0;
}
cs


'Programming > ▷ C' 카테고리의 다른 글

Project_Ransomware  (0) 2018.09.13
[C] AES 128bit Encrypt/Decrypt  (0) 2018.06.15
C base64 encode/decode  (0) 2018.06.11
[C] 파일 하위 디렉토리 까지 탐색 코드  (15) 2017.10.24
[C] 파일 or 디렉토리 식별  (0) 2017.10.24