개발하는 두더지

[C/C++/UWP] UWP 로컬 폴더, 임시 폴더에 파일 생성하기 본문

C,C++

[C/C++/UWP] UWP 로컬 폴더, 임시 폴더에 파일 생성하기

덜지 2016. 8. 9. 17:14

UWP 파일 생성하기 


  1. Standard C++ 또는 C++/CX 로 파일 생성가능

  2. 설치폴더, 임시폴더, 앱데이터폴더만 접근가능
    - C드라이브, 시스템폴더 접근불가
    - 내문서, 내사진, 내음악 등 라이브러리폴더, 제거가능한장치(USB) 접근가능

  3. 윈도우 스토어 앱은 샌드박스에서 돌아가고 파일시스템에 아주 제한적으로 허용한다. 
    설치폴더와 어플리케이션 데이터 폴더에 직접 접근 가능하다.  
    다른장소의 파일 시스템에 접근할 권한을 가지고 있지 않다.

    다른 장소에 접근은 오직 브로커 프로세스를 통해서만 이용가능하다. 
    브로커 프로세스는 사용자의 권한 전체를 가지고 실행합니다. (사진, 내문서, 다운로드, 파일Picker 등등)


UWP 앱 인스톨폴더를 Path1 라고 하면 경로는 아래와 같다.

Path1 : C:\User\사용자계정명\Appdata\Local\Packages\UWP앱패키지명\




  1. 로컬폴더 저장위치
    ApplicationData::Current->LocalFolder  :  Path1\LocalState

  2. 임시폴더 저장위치
    ApplicationData::Current->TemporaryFolder : Path1\TempState

  3. 로컬캐시폴더 저장위치
    ApplicationData::Current->LocalCacheFolder : Path1\LocalCache

  4. 로밍폴더 저장위치
    ApplicationData::Current->RoamingFolder : Path1\RoamingState



# 스탠다드 C++

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    StorageFolder^ localFolder = ApplicationData::Current->LocalFolder;
    String^ path = localFolder->Path;
    path += L"\\LocalFolder.txt";
 
    CREATEFILE2_EXTENDED_PARAMETERS ms_param = { 0 };
    ms_param.dwSize = sizeof(CREATEFILE2_EXTENDED_PARAMETERS);
    ms_param.dwFileAttributes = FILE_ATTRIBUTE_READONLY;
    ms_param.dwFileFlags = FILE_FLAG_NO_BUFFERING;
    ms_param.dwSecurityQosFlags = SECURITY_ANONYMOUS;
    ms_param.lpSecurityAttributes = NULL;
    ms_param.hTemplateFile = NULL;
 
    HANDLE g_hfile = CreateFile2(path->Data(), GENERIC_WRITE | GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, CREATE_NEW, &ms_param);
 
    DWORD error = GetLastError();
cs


# C++/CX

1
2
3
4
5
6
    StorageFolder^ localFolder = ApplicationData::Current->LocalFolder;
 
    auto createFileTask = create_task(localFolder->CreateFileAsync("LocalFolder.txt")).then([](StorageFile^ newFile)
    {
        
    });
cs


Comments