Windows 8 では、次を使用してLocalFolder
アクセスできるアプリに を使用する必要があります。
StorageFolder folder = ApplicationData.Current.LocalFolder;
次に、以下を使用してそこに保存されたファイルを参照します。
var fileToGet = await folder.GetFileAsync("nameOfFile.fileType");
私は現在、私が取り組んでいるプロジェクトで同様の状況にあり、カスタム オブジェクトのリストを Apps LocalFolder に保存し、後でリロードしたいと考えています。
私の解決策は、リストを XML 文字列にシリアル化し、これを App フォルダーに保存することでした。あなたは私の方法を適応させることができるはずです:
static public string SerializeListToXml(List<CustomObject> List)
{
try
{
XmlSerializer xmlIzer = new XmlSerializer(typeof(List<CustomObject>));
var writer = new StringWriter();
xmlIzer.Serialize(writer, List);
System.Diagnostics.Debug.WriteLine(writer.ToString());
return writer.ToString();
}
catch (Exception exc)
{
System.Diagnostics.Debug.WriteLine(exc);
return String.Empty;
}
文字列を取得したので、それをテキスト ファイルに保存して、LocalStorage に配置できます。
//assuming you already have a list with data called myList
await Windows.Storage.FileIO.WriteTextAsync("xmlFile.txt", SerializeListToXml(myList));
アプリを再度読み込むと、上記の読み込みメソッドを使用して LocalStorage から xmlFile を取得し、それを逆シリアル化して List を取得できます。
string listAsXml = await Windows.Storage.FileIO.ReadTextAsync(xmlFile.txt);
List<CustomObject> deserializedList = DeserializeXmlToList(listAsXml);
繰り返しますが、これをニーズに合わせて調整します。
public static List<CustomObject> DeserializeXmlToList(string listAsXml)
{
try
{
XmlSerializer xmlIzer = new XmlSerializer(typeof(List<CustomObject>));
XmlReader xmlRead = XmlReader.Create(listAsXml);
List<CustomObject> myList = new List<CustomObject>();
myList = (xmlIzer.Deserialize(xmlRead)) as List<CustomObject>;
return myList;
}
catch (Exception exc)
{
System.Diagnostics.Debug.WriteLine(exc);
List<CustomObject> emptyList = new List<CustomObject>();
return emptyList;
}
}