윈도우즈 시스템 프로그래밍 18장 - 디렉터리 관련 함수 및 그밖의 함수들
윈도우즈 시스템 프로그래밍이라는 책과 해당 책의 저자이신 윤성우님의 강의를 통해 공부한 내용을 정리하는 글입니다.
디렉터리의 생성과 소멸
디렉터리를 생성하는 함수
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 : 파일 이름이 저장된 위치 정보 획득