快速入門:本機應用程式資料 (HTML)
[ 本文的目標對象是撰寫 Windows 執行階段 App 的 Windows 8.x 和 Windows Phone 8.x 開發人員。如果您正在開發適用於 Windows 10 的 App,請參閱 最新文件 ]
了解如何從本機應用程式資料存放區儲存與抓取設定和檔案。
取得應用程式各項設定和檔案的容器
使用 ApplicationData.localSettings 屬性來取得 ApplicationDataContainer 物件中的設定。使用 ApplicationData.localFolder 屬性來取得 StorageFolder 物件中的檔案。
var localSettings = applicationData.localSettings;
var localFolder = applicationData.localFolder;
下一步驟會使用此步驟的 localSettings
和 localFolder
變數。
將資料寫入設定
使用 ApplicationDataContainer.values 屬性來存取上一個步驟中取得之 localSettings
容器的設定。這個範例會建立名為 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";
}
從設定讀取資料
使用 ApplicationDataContainer.values 屬性來取得 localSettings
容器中的 exampleSetting
設定。
// Simple setting
var value = localSettings.values["exampleSetting"];
if (!value)
{
// No data
}
else
{
// Access data in value
}
使用 ApplicationDataContainer.values 屬性來取得 localSettings
容器中的 exampleCompositeSetting
設定。
// Composite setting
var composite = localSettings.values["exampleCompositeSetting"];
if (!composite)
{
// No data
}
else
{
// Access data in composite["intVal"] and composite["strVal"]
}
使用 ApplicationDataContainer.values 屬性來取得 exampleContainer
容器中的 exampleSetting
設定。
// 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.createFileAsync 和 Windows.Storage.FileIO.writeTextAsync,在本機應用程式資料存放區中建立和更新檔案。這個範例會在 localFolder
容器中建立名為 dataFile.txt
的檔案,然後在這個檔案中寫入目前的日期與時間。來自 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 () {
});
}
從檔案讀取資料
使用檔案 API (例如,Windows.Storage.StorageFolder.getFileAsync、Windows.Storage.StorageFile.GetFileFromApplicationUriAsync 及 Windows.Storage.FileIO.readTextAsync),在本機應用程式資料存放區中開啟和讀取檔案。這個範例會開啟上一個步驟中建立的 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.Storage.ApplicationData
Windows.Storage.ApplicationDataCompositeValue
Windows.Storage.ApplicationDataContainer
Windows.Storage.ApplicationDataContainerSettings
範例