정보
요청한 주제가 아래에 표시됩니다. 그러나 이 주제는 이 라이브러리에 포함되지 않습니다.

빠른 시작: 로컬 앱 데이터(XAML)

[ 이 문서는 Windows 런타임 앱을 작성하는 Windows에서 8.x 및 Windows Phone 8.x 개발자를 대상으로 합니다. Windows 10용으로 개발하는 경우에는 최신 설명서를 참조하세요.]

로컬 앱 데이터 저장소에서 설정 및 파일을 저장하고 검색하는 방법에 대해 알아봅니다.

로드맵: 이 항목은 다음 항목과 연관되어 있습니다. 참고 항목:

앱 설정 및 파일 컨테이너 가져오기

ApplicationDataContainer 개체의 설정을 가져오려면 ApplicationData.LocalSettings 속성을 사용하고, StorageFolder 개체의 파일을 가져오려면 ApplicationData.LocalFolder 속성을 사용합니다.


Windows.Storage.ApplicationDataContainer localSettings = Windows.Storage.ApplicationData.Current.LocalSettings;
Windows.Storage.StorageFolder localFolder = Windows.Storage.ApplicationData.Current.LocalFolder;

다음 섹션에서는 이 섹션의 localSettingslocalFolder 변수를 사용합니다.

설정에 데이터 쓰기

앞 단계에서 가져온 localSettings 컨테이너의 설정에 액세스하려면 ApplicationDataContainer.Values 속성을 사용합니다. 이 예제에서는 exampleSetting이라는 설정을 만듭니다.


// Simple setting

localSettings.Values["exampleSetting"] = "Hello Windows";

ApplicationDataCompositeValue 개체에는 자동으로 액세스되어야 하는 설정이 포함됩니다. 이 예제에서는 exampleCompositeSetting이라는 복합 설정을 만들어 localSettings 컨테이너에 추가합니다.


// Composite setting

Windows.Storage.ApplicationDataCompositeValue composite = new Windows.Storage.ApplicationDataCompositeValue();
composite["intVal"] = 1;
composite["strVal"] = "string";

localSettings.Values["exampleCompositeSetting"] = composite;

설정 컨테이너를 만들려면 ApplicationDataContainer.CreateContainer 메서드를 호출합니다. 이 예제에서는 exampleContainer라는 설정 컨테이너를 만들고 exampleSetting이라는 설정을 추가합니다. ApplicationDataCreateDisposition 열거형의 Always 값은 컨테이너가 아직 없는 경우 컨테이너를 만들어야 함을 나타냅니다.


// Setting in a container

Windows.Storage.ApplicationDataContainer container = 
   localSettings.CreateContainer("exampleContainer", Windows.Storage.ApplicationDataCreateDisposition.Always);

if (localSettings.Containers.ContainsKey("exampleContainer"))
{
   localSettings.Containers["exampleContainer"].Values["exampleSetting"] = "Hello Windows";
}

설정에서 데이터 읽기

localSettings 컨테이너의 exampleSetting 설정에 액세스하려면 ApplicationDataContainer.Values 속성을 사용합니다.


// Simple setting

Object value = localSettings.Values["exampleSetting"];

localSettings 컨테이너의 exampleCompositeSetting 설정에 액세스하려면 ApplicationDataContainer.Values 속성을 사용합니다.


// Composite setting

Windows.Storage.ApplicationDataCompositeValue composite = 
   (Windows.Storage.ApplicationDataCompositeValue)localSettings.Values["exampleCompositeSetting"];

if (composite == null)
{
   // No data
}
else
{
   // Access data in composite["intVal"] and composite["strVal"]
}

exampleContainer 컨테이너의 exampleSetting 설정에 액세스하려면 ApplicationDataContainer.Values 속성을 사용합니다.


// Setting in a container

bool hasContainer = localSettings.Containers.ContainsKey("exampleContainer");
bool hasSetting = false;

if (hasContainer)
{
   hasSetting = localSettings.Containers["exampleContainer"].Values.ContainsKey("exampleSetting");
}

파일에 데이터 쓰기

파일 API(예: Windows.Storage.StorageFolder.CreateFileAsyncWindows.Storage.FileIO.WriteTextAsync)를 사용하여 로컬 앱 데이터 저장소에 파일을 만들고 업데이트하세요. 이 예제에서는 dataFile.txt라는 파일을 localFolder 컨테이너에 만들고 현재 날짜와 시간을 이 파일에 기록합니다. CreationCollisionOption 열거형의 ReplaceExisting 값은 파일이 이미 있는 경우 파일을 바꾸어야 함을 나타냅니다.

참고  Windows Phone 스토어 앱의 경우, 기본적으로 앱 데이터를 백업합니다. 파일을 백업하지 않으려면 앱의 로컬 저장소에 있는 LocalCache 하위 폴더에 저장하세요.


async void WriteTimestamp()
{
   Windows.Globalization.DateTimeFormatting.DateTimeFormatter formatter = 
       new Windows.Globalization.DatetimeFormatting.DateTimeFormatter("longtime");

   StorageFile sampleFile = await localFolder.CreateFileAsync("dataFile.txt", 
       CreateCollisionOption.ReplaceExisting);
   await FileIO.WriteTextAsync(sampleFile, formatter.Format(DateTime.Now));
}

파일에서 데이터 읽기

Windows.Storage.StorageFolder.GetFileAsync, Windows.Storage.StorageFile.GetFileFromApplicationUriAsyncWindows.Storage.FileIO.ReadTextAsync 같은 파일 API를 사용하여 로컬 앱 데이터 저장소에서 파일을 열고 읽습니다. 이 예제에서는 앞 단계에서 만든 dataFile.txt 파일을 열고 파일에서 날짜를 읽습니다. 다양한 위치에서 파일 리소스 로드에 대한 자세한 내용은 파일 리소스를 로드하는 방법을 참조하세요.


async void ReadTimestamp()
{
   try
   {
      StorageFile sampleFile = await localFolder.GetFileAsync("dataFile.txt");
      String timestamp = await FileIO.ReadTextAsync(sampleFile);
      // Data is contained in timestamp
   }
   catch (Exception)
   {
      // Timestamp not found
   }
}

설정 사용을 마치면 설정 삭제

exampleSetting 설정을 사용하는 작업을 마쳤으면 ApplicationDataContainerSettings.Remove 메서드를 호출하여 이 설정을 삭제합니다.


// Delete simple setting

localSettings.Values.Remove("exampleSetting");

exampleCompositeSetting 복합 설정을 사용하는 작업을 마쳤으면 ApplicationDataCompositeValue.Remove 메서드를 호출하여 이 복합 설정을 삭제합니다.


// Delete composite setting

localSettings.Values.Remove("exampleCompositeSetting");

exampleContainer 설정 컨테이너를 사용하는 작업을 마쳤으면 ApplicationDataContainer.DeleteContainer 메서드를 호출하여 이 설정 컨테이너를 삭제합니다.


// Delete container

localSettings.DeleteContainer("exampleContainer");

관련 항목

작업
파일 리소스를 로드하는 방법
빠른 시작: 로밍 앱 데이터
빠른 시작: 임시 앱 데이터
개념
Windows 런타임을 사용하여 앱 데이터 액세스
참조
Windows.Storage.ApplicationData
Windows.Storage.ApplicationDataCompositeValue
Windows.Storage.ApplicationDataContainer
Windows.Storage.ApplicationDataContainerSettings
샘플
응용 프로그램 데이터 샘플

 

 

표시: