From aba818f3b66751842f457169ff1cfa58fc43dd84 Mon Sep 17 00:00:00 2001 From: Ian C Date: Sun, 24 Jun 2012 22:37:32 +0000 Subject: Development check in --- .../ViewModels/FileInfo.cs | 100 +++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 Noddybox.WindowsPhone.Silverlight/ViewModels/FileInfo.cs (limited to 'Noddybox.WindowsPhone.Silverlight/ViewModels/FileInfo.cs') diff --git a/Noddybox.WindowsPhone.Silverlight/ViewModels/FileInfo.cs b/Noddybox.WindowsPhone.Silverlight/ViewModels/FileInfo.cs new file mode 100644 index 0000000..3c680c7 --- /dev/null +++ b/Noddybox.WindowsPhone.Silverlight/ViewModels/FileInfo.cs @@ -0,0 +1,100 @@ +// 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; + } + } +} -- cgit v1.2.3