티스토리 뷰

목차

    반응형

    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]

    반응형