본문 바로가기
C++ 200제/코딩 IT 정보

AppData 폴더 위치 접근 후 파일 만들기(생성) 예제 소스 [C++ CLI]

by vicddory 2019. 4. 19.
반응형

AppData 폴더 위치 접근 후 파일 만들기(생성) 예제 소스 [C++ CLI]


C 드라이브에 파일을 만들 수 없을 때, C:\Users\사용자\AppData\Roaming\ 하단 폴더를 이용합니다. C++ CLI도 마찬가지인데, AppData 폴더에 파일을 생성하는 아주 간단한 소스 코드 소개합니다.


getenv 함수에 "APPDATA 폴더"를 인자로 전달하면 반환값 C:\Users\사용자\AppData\Roaming을 얻을 수 있어요. 하지만, getenv 함수의 반환형은 char * 이므로 C++ CLI String이 바로 이용할 순 없습니다.


c++ cli 파일 만들기[C++ CLI 파일 생성 예제 소스]


그래서 gcnew String을 사용해 형변환을 해줘야 합니다. 아래는 그 과정을 반영한 예제 코드입니다.


1
System::String^ path = gcnew String(getenv("APPDATA")) + "\\temp.txt";
cs


CLI 가 MFC랑은 다르게 operator + 를 오버로드하고 있기 때문에 파일 경로를 만들기 쉽죠. 이렇게 간단한 한 줄로 경로를 잡으면 흔하디 흔한 코드를 사용해 파일을 생성할 수 있습니다.


c드라이브 c++ 파일 만들기 appdata[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]

반응형