On Windows 8, you must use LocalFolder for your application, which you can access using:
StorageFolder folder = ApplicationData.Current.LocalFolder;
and then save the help files using:
var fileToGet = await folder.GetFileAsync("nameOfFile.fileType");
I am currently working in a similar situation in a project that I am working on, where I want to save a list of user objects in my LocalFolder application and reload it later.
My solution was to serialize the list into an XML string and save it in the application folder. You should be able to adapt my methods:
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; }
Now that you have the line, you can save the text file and put it in LocalStorage:
//assuming you already have a list with data called myList await Windows.Storage.FileIO.WriteTextAsync("xmlFile.txt", SerializeListToXml(myList));
Now, when you download your application again, you can use the download method mentioned above to get the xmlFile from LocalStorage and then deserialize it to return your list.
string listAsXml = await Windows.Storage.FileIO.ReadTextAsync(xmlFile.txt); List<CustomObject> deserializedList = DeserializeXmlToList(listAsXml);
Again, adapt this to your needs:
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; } }