윈도우즈 시스템 프로그래밍

윈도우즈 시스템 프로그래밍 18장 - 디렉터리 관련 함수 및 그밖의 함수들

111-000-111 2021. 8. 16. 17:33

 

 

 

 

윈도우즈 시스템 프로그래밍이라는 책과 해당 책의 저자이신 윤성우님의 강의를 통해 공부한 내용을 정리하는 글입니다.

 

 

 

 


 

 

 

디렉터리의 생성과 소멸

 

 

디렉터리를 생성하는 함수

BOOL CreateDirectory (
    LPCTSTR lpPathName,
    LPSECURITY_ATTRIBUTES lpSecurityAttributes
);
//If the function fails, the return value is zero.

 

⦁ lpPathName : 생성하고자 하는 디렉터리 이름 지정

⦁ lpSecurityAttributes : 보안 속성 지정

 

 

 

디렉터리를 소멸시키는 함수

BOOL RemoveDirectory (
    LPCTSTR lpPathName,
);
// If the function fails, the return value is zero.

 

 

 

 

현재 디렉터리, 시스템 디렉터리 그리고 WIndows 디렉터리

 

 

⦁ 현재 디렉터리(Current Directory)

 

실행파일이 존재하는 디렉터리를 의미한다.

초기에는 프로그램이 로드된 디렉터리로 설정되며, 이후 변경이 가능하다.

완전경로를 지정하지 않고 파일을 생성하면 현재 디렉터리를 기준으로 파일을 찾게된다.

 

현재 디렉터리를 참조하는 함수

DWORD GetCurrentDirectory (
    DWORD nBufferLength,
    LPTSTR lpBuffer
);
//If the function fails, the return value is zero.

 

⦁ nBufferLength : 두 번째 인자로 전달된 버퍼의 길이를 지정한다.

⦁ lpBuffer : 현재 디렉터리 정보를 저장할 버퍼의 주소값 지정

 

 

현재 디렉터리를 변경하는 함수

BOOL SetCurrentDirectory (
    LPCTSTR lpPathName
);
//If the function fails, the return value is zero.

 

⦁ lpPathName : 변경하고자 하는 현재 디렉터리 정보 저장

 

 

 

⦁ 시스템 디렉터리(System Directory) & Windows 디렉터리

 

시스템 디렉터리는 DLL 및 드라이버 파일처럼 Windows 시스템에 중요한 파일이 존재하는 위치이다.

Windows 디렉터리는 초기화 및 실행파일들이 존재하는 위치이다.

이들은 변경할 수도 없고, 변경해서는 안 되는 디렉터리들이다.

 

 

시스템 디렉터리의 위치를 확인하는 함수

UINT GetSystemDirectory (
    LPTSTR lpBuffer,
    UINT uSize
);
//If the function fails, the return value is zero.

 

⦁ lpBuffer : 시스템 디렉터리 정보를 저장할 버퍼의 주소값

⦁ uSize : 첫 번째 인자로 전달된 버퍼의 길이 지정

 

 

Windows 디렉터리의 위치를 확인하는 함수

UINT GetWindowsDirectory (
    LPTSTR lpBuffer,
    UINT uSize
);
//If the function fails, the return value is zero.

 

 

 

 

디렉터리에서 파일 찾기

 

문자열로 지정한 경로에 특정 파일이 존재하는지 확인하는 함수

DWORD SearchPath (
    LPCTSTR lpPath,
    LPCTSTR lpFileName,
    LPCTSTR lpExtension,
    DWORD nBufferLength,
    LPTSTR lpBuffer,
    LPTSTR* lpFilePart
);
//If the function fails, the return value is zero.

 

⦁ lpPath : 대상 경로 지정, NULL이 전달되면 표준 검색경로로 찾는다.

⦁ lpFileName : 찾고자 하는 파일 이름

⦁ lpExtension : 확장자를 지정하는 인자. 반드시 '.'으로 시작해야한다. 확장자 지정이 필요없으면 NULL

⦁ nBufferLength : 완전경로명을 저장할 버퍼 길이 지정

⦁ lpBuffer : 완전경로명을 저장할 버퍼의 주소

⦁ lpFilePart : 파일 이름이 저장된 위치 정보 획득