Coding & Programming/C, C++

[C언어/C++] 파일 삭제 하기-unlink, remove, DeleteFile 함수 예제(Delete a file in C)

mainCodes 2021. 5. 2. 09:02

[C언어/C++] unlink, remove, DeleteFile 함수 예제 - 파일 삭제 하기(Delete a file in C)

 

안녕하세요 JollyTree입니다 (•̀ᴗ•́)و

 

C언어는 파일 처리 함수(remove, unlink, DeleteFile)를 이용하여 파일을 삭제할 수 있습니다. remove, unlink는 C언어 라이브러리에서 제공하는 함수이고 DeleteFile 함수 윈도우 운영체제 전용 Win32 API 입니다. 3개 함수 모두 1개의 파라미터를 가지고 있으며 파라미터로 파일명을 입력받습니다.

 

int remove(const char *path);
int unlink(const char *filename);
BOOL DeleteFile(LPCSTR lpFileName);


메인코즈의 글들은 스터디에 포커스가 맞춰져 있어요. 그래서 Visual Studio 2019 프로젝트 프로퍼티에서 Chracter Set을 "Use Multi-Byte Character Set"으로 설정하였습니다.

 

 

🔗 Character Set 변경 방법

 

"Project" 메뉴를 선택한 후 "Properties...(Alt+F7)-Configuration Properties-Advanced-Character Set"의 옵션을 "Use Multi-Byte Character Set"으로 설정합니다.

 

 

만약, DeleteFile 함수 사용시 "Use Unicode Character Set"으로 프로젝트 설정을 원한면 char 타입을 TCHAR으로 변경하여 사용할 것을 권합니다. 스레드 이용하여 파일 복사 하기(1/3) 자료의 중간 부분 "참고"를 한 번 읽어보세요.

 

🔗 파일 삭제 함수 예제(unlink, remove, DeleteFile functions example):

 

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
31
32
33
34
#pragma warning(disable:4996)
#include <stdio.h>
#include <windows.h>
 
int main()
{
    char filename1[] = "maincodes1.exe";
    char filename2[] = "maincodes2.exe";
    char filename3[] = "maincodes3.exe";
    int r;
 
    //unlink 함수를 이용한 방법
    r = unlink(filename1);
    if (r == 0)
        printf(" >> [unlink] %s 파일을 삭제하였습니다.\n", filename1);
    else
        printf(" >> [unlink] %s 파일을 삭제할수 없습니다.\n", filename1);
 
    //remove 함수를 이용한 방법
    r = remove(filename2);
    if (r == 0)
        printf(" >> [remove] %s 파일을 삭제하였습니다.\n", filename2);
    else
        printf(" >> [remove] %s 파일을 삭제할수 없습니다.\n", filename2);
        
    //Win32 DeleteFile 함수를 이용한 방법
    r = DeleteFile(filename3);
    if(r == TRUE)
        printf(" >> [DeleteFile] %s 파일을 삭제하였습니다.\n", filename3);
    else
        printf(" >> [DeleteFile] %s 파일을 삭제할수 없습니다.\n", filename3);
 
    return 0;
}
cs

 

🔗 실행결과(Output):

 


상 JollyTree였습니다. (•̀ᴗ•́)و