처음에 배열에 문자열을 바꿔주고 대입하여 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 |