// This file is part of the Noddybox.WindowsPhone C# suite. // // Noddybox.Emulation is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // Noddybox.Emulation is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with Noddybox.Emulation. If not, see . // // Copyright (c) 2012 Ian Cowburn // using System; using System.Net; using System.Windows; using System.Windows.Controls; using System.Windows.Documents; using System.Windows.Ink; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Animation; using System.Windows.Shapes; using System.IO.IsolatedStorage; using System.Collections.Generic; namespace Noddybox.WindowsPhone.Silverlight.ViewModels { /// /// Provides information on a file in Isolated Storage /// public class FileInfo { /// /// True if the file is a folder. /// public bool IsFolder {get; private set;} /// /// The name of the file. /// public string Name {get; private set;} /// /// Constructor. /// /// Whether the file is a folder. /// The file name. public FileInfo (bool isFolder, string name) { IsFolder = isFolder; Name = name; } /// /// Gets the file list for a specified folder. /// /// The folder to search, which must end with a "/". Uses root folder is empty or null. /// A list of the files and directories. A ".." directory is added if not the root folder. public static List GetFiles(string folder) { bool root = false; List flist = new List(); if (String.IsNullOrEmpty(folder) || folder == "/") { root = true; folder = "/"; } if (!folder.EndsWith("/")) { throw new ArgumentException("Folder must end with a slash"); } if (!root) { flist.Add(new FileInfo(true, "..")); } IsolatedStorageFile iso = IsolatedStorageFile.GetUserStoreForApplication(); foreach (string s in iso.GetDirectoryNames(folder + "*")) { flist.Add(new FileInfo(true, s)); } foreach (string s in iso.GetFileNames(folder + "*")) { flist.Add(new FileInfo(false, s)); } return flist; } } }