(
1)獲取使用者庫位置
如果想要通過應用程式在使用者庫中建立檔案,首先需要獲得使用者庫中指定的位置,例如庫、文件庫等。這裡值得注意的是,在獲取使用者庫的位置之前,必須在
windows
應用商店專案的清單檔案
中開啟相應的訪問許可權,如果應用需要訪問**庫,就需要在
檔案的功能選項卡中勾選「**庫」,如圖
13-4
所示。圖
13-4
開啟訪問**庫的許可權
以此類推,如果需要訪問其他的庫位置,可勾選相應的選項以開啟訪問許可權。
在開啟相應的許可權之後,使用
api參考中介紹的
knownfolders
類的常用屬性就可以獲取到**庫、庫等位置。示例**如下所示://
獲取文件庫位置
storagefolder documentfolder = knownfolders.documentslibrary;
//獲取**庫位置
storagefolder musicfolder = knownfolders.
musiclibrary;
//獲取庫位置
storagefolder picturefolder = knownfolders.
pictureslibrary;
(2)建立檔案
在獲取了使用者庫位置之後,使用
createfileasync
方法及其過載可以在使用者庫中建立檔案,該方法需要獲得乙個引數來指定檔案的名稱,如果需要還可以使用另乙個
creationcollisionoption
型別的引數,指定如果已經存在同名檔案時應該執行的操作。
creationcollisionoption
是乙個列舉,包含四個列舉成員,如下所示: q
generateuniquename
,如果存在同名檔案,建立檔案時自動在檔名稱後面追加乙個數字。 q
replaceexisting
,如果存在同名檔案,建立檔案時將其替換。 q
failifexists
,如果存在同名檔案,則返回錯誤。 q
openifexists
,如果存在同名檔案,則將其開啟。
下面的示例**獲取文件庫,並在其中建立
test.txt
檔案,若存在同名檔案則將其替換。
storagefolder storagefolder = knownfolders.documentslibrary;
storagefile
file = await storagefolder.createfileasync("test
.txt ", creationcollisionoption.replaceexisting);
(3)檔案讀寫
在文件庫中建立了乙個
test.txt
檔案之後,若想對其進行寫入和讀取文字的操作,可以通過呼叫
fileio
類的writetextasync
和readtextasync
方法來實現,示例**如下所示:
//寫入文字
await windows.storage.fileio.writetextasync(
file, "
內容字串
");
//讀取文字
string text = await windows.storage.fileio.readtextasync(
file);
除了以文字方式讀寫檔案以外,還能以資料流的形式讀寫檔案。在以資料流的形式
寫入檔案內容時,首先需要通過
storagefile
類的openasync
方法得到用於寫入檔案內容的資料流,然後建立乙個
datawriter
類的物件,使用
datawriter
物件的writestring
方法將文字寫入到輸出流中,寫入完成後,呼叫
storeasync
和flushasync
方法儲存文字並關閉輸出流。示例**如下所示:
var stream = await file.openasync(windows.storage.fileaccessmode.readwrite);
using(var outputstream = stream.getoutputstreamat(0))
與寫入檔案相似
,在以資料流形式讀取檔案時,同樣需要首先通過呼叫
openasync
方法獲得讀取檔案的資料流,但與寫入不同的是,讀取檔案需要使用
datareader
類,通過此類的
loadasync
方法將檔案中的內容以資料流的形式讀取出來。示例**如下所示:
var stream = await file.openasync(windows.storage.fileaccessmode.readwrite);
uint size = (uint)stream.size;
using (var inputstream = stream.getinputstreamat(0))
除了以上兩種讀寫檔案的方式,還可通過位元組的方式讀寫檔案,採用這種方式,需要乙個緩衝區來儲存讀寫資料。這種方式並不常用,在這裡就不做過多介紹了,感興趣的讀者可以查閱相關資料。
Windows Store App 旋轉中心
旋轉中心的位置可以通過設定 centerofrotationx centerofrotationy 和centerofrotationz 屬性來指定。centerofrotationx 和centerofrotationy 屬性的預設值都是 0.5,表示旋轉軸正好位於旋轉物件的中心。當這兩個屬性值為...
Windows Store App 控制項動畫
在開發windows 應用商店應用時,開發工具中已經 封裝了大量的控制項供開發人員使用,而其中有一部分控制項,例如 flipview tooltip listview 以及semanticzoom 等控制項中已經預設整合了內建的動畫,這種整合在控制項中的動畫被稱為控制項動畫,開發人員可根據不同的應用...
Windows Store App 旋轉中心
旋轉中心的位置可以通過設定 centerofrotationx centerofrotationy 和centerofrotationz 屬性來指定。centerofrotationx 和centerofrotationy 屬性的預設值都是 0.5,表示旋轉軸正好位於旋轉物件的中心。當這兩個屬性值為...