Share via


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

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

Applies to Windows and Windows Phone

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

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

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

var localSettings = applicationData.localSettings;
var localFolder = applicationData.localFolder;

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

설정에 데이터 쓰기

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

// Simple setting

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

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

// Composite setting

var 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

var container = localSettings.createContainer("exampleContainer", Windows.Storage.ApplicationDataCreateDisposition.always);

if (localSettings.containers.hasKey("exampleContainer"))
{
    localSettings.containers.lookup("exampleContainer").values["exampleSetting"] = "Hello Windows";
}

설정에서 데이터 읽기

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

// Simple setting

var value = localSettings.values["exampleSetting"];
        
if (!value)
{
    // No data
}
else
{
    // Access data in value
}

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

// Composite setting

var composite = localSettings.values["exampleCompositeSetting"];

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

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

// Setting in a container

var hasContainer = localSettings.containers.hasKey("exampleContainer");

if (hasContainer)
{
    // Access data in localSettings.containers.lookup("exampleContainer").values.hasKey("exampleSetting");
}

파일에 데이터 쓰기

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

function writeTimestamp() {
   localFolder.createFileAsync("dataFile.txt", Windows.Storage.CreationCollisionOption.replaceExisting)
      .then(function (sampleFile) {
         var formatter = new Windows.Globalization.DateTimeFormatting.DateTimeFormatter("longtime");
         var timestamp = formatter.format(new Date());

         return Windows.Storage.FileIO.writeTextAsync(sampleFile, timestamp);
      }).done(function () {      
      });
}

파일에서 데이터 읽기

Windows.Storage.StorageFolder.getFileAsync, Windows.Storage.StorageFile.GetFileFromApplicationUriAsyncWindows.Storage.FileIO.readTextAsync 같은 파일 API를 사용하여 로컬 앱 데이터 저장소에서 파일을 열고 읽습니다. 이 예제에서는 앞 단계에서 만든 dataFile.txt 파일을 열고 파일에서 날짜를 읽습니다. CreationCollisionOption 열거형의 openIfExists 값은 파일이 반드시 있어야 함을 나타냅니다. 다양한 위치에서 파일 리소스 로드에 대한 자세한 내용은 파일 리소스를 로드하는 방법을 참조하세요.

function readTimestamp() {
   localFolder.getFileAsync("dataFile.txt")
      .then(function (sampleFile) {
         return Windows.Storage.FileIO.readTextAsync(sampleFile);
      }).done(function (timestamp) {
         // Data is contained in timestamp
      }, function () {
         // Timestamp not found
      });
}

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

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

// 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

샘플

응용 프로그램 데이터 샘플