AppData 폴더 위치 접근 후 파일 만들기(생성) 예제 소스 [C++ CLI]
C 드라이브에 파일을 만들 수 없을 때, C:\Users\사용자\AppData\Roaming\ 하단 폴더를 이용합니다. C++ CLI도 마찬가지인데, AppData 폴더에 파일을 생성하는 아주 간단한 소스 코드 소개합니다.
getenv 함수에 "APPDATA 폴더"를 인자로 전달하면 반환값 C:\Users\사용자\AppData\Roaming을 얻을 수 있어요. 하지만, getenv 함수의 반환형은 char * 이므로 C++ CLI String이 바로 이용할 순 없습니다.
[C++ CLI 파일 생성 예제 소스]
그래서 gcnew String을 사용해 형변환을 해줘야 합니다. 아래는 그 과정을 반영한 예제 코드입니다.
1 | System::String^ path = gcnew String(getenv("APPDATA")) + "\\temp.txt"; | cs |
CLI 가 MFC랑은 다르게 operator + 를 오버로드하고 있기 때문에 파일 경로를 만들기 쉽죠. 이렇게 간단한 한 줄로 경로를 잡으면 흔하디 흔한 코드를 사용해 파일을 생성할 수 있습니다.
[C++ CLI 파일 생성 예제 소스]
아래는 아무나 다 아는 간단한 파일 생성 코드입니다. AppData 폴더에 파일 생성하는 예제죠.
1 2 3 4 5 6 7 8 | if (!File::Exists(path)) { fs = File::Create(path); } else { fs = gcnew FileStream(path, FileMode::Create, FileAccess::ReadWrite); } | cs |
FileMode에 따라서 파일 생성 조건이 달라지는데 옵션 항목 간단히 알아볼게요.
FileMode 옵션
Append - 파일이 있으면 열고 맨 뒤에 내용 삽입. 없으면 파일 생성.
Create - 새 파일 생성. 존재하면 덮어씀. 기존 파일 삭제.
CreateNew - 파일이 없으면 생성하지만 있으면 UnauthorizedAccessException 예외 발생.
Open - 열기 모드로 기존 파일에 접근. 없으면 System.IO.FileNotFoundException 예외 발생
Open Or Create - 권한이 필요한 Open 또는 Create 모드
AppData 폴더 위치 접근 후 파일 만들기(생성) 예제 소스 [C++ CLI]