summaryrefslogtreecommitdiff
path: root/Noddybox.WindowsPhone.Silverlight/ViewModels/FileInfo.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Noddybox.WindowsPhone.Silverlight/ViewModels/FileInfo.cs')
-rw-r--r--Noddybox.WindowsPhone.Silverlight/ViewModels/FileInfo.cs27
1 files changed, 20 insertions, 7 deletions
diff --git a/Noddybox.WindowsPhone.Silverlight/ViewModels/FileInfo.cs b/Noddybox.WindowsPhone.Silverlight/ViewModels/FileInfo.cs
index 3c680c7..9adb0f3 100644
--- a/Noddybox.WindowsPhone.Silverlight/ViewModels/FileInfo.cs
+++ b/Noddybox.WindowsPhone.Silverlight/ViewModels/FileInfo.cs
@@ -27,6 +27,7 @@ using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.IO.IsolatedStorage;
using System.Collections.Generic;
+using System.Text.RegularExpressions;
namespace Noddybox.WindowsPhone.Silverlight.ViewModels
{
@@ -46,14 +47,20 @@ namespace Noddybox.WindowsPhone.Silverlight.ViewModels
public string Name {get; private set;}
/// <summary>
+ /// The full path of the file.
+ /// </summary>
+ public string Path {get; private set;}
+
+ /// <summary>
/// Constructor.
/// </summary>
/// <param name="isFolder">Whether the file is a folder.</param>
/// <param name="name">The file name.</param>
- public FileInfo (bool isFolder, string name)
+ public FileInfo (bool isFolder, string name, string path)
{
IsFolder = isFolder;
Name = name;
+ Path = path;
}
/// <summary>
@@ -61,7 +68,7 @@ namespace Noddybox.WindowsPhone.Silverlight.ViewModels
/// </summary>
/// <param name="folder">The folder to search, which must end with a "/". Uses root folder is empty or null.</param>
/// <returns>A list of the files and directories. A ".." directory is added if not the root folder.</returns>
- public static List<FileInfo> GetFiles(string folder)
+ public static List<FileInfo> GetFiles(string folder, string mask)
{
bool root = false;
List<FileInfo> flist = new List<FileInfo>();
@@ -79,19 +86,25 @@ namespace Noddybox.WindowsPhone.Silverlight.ViewModels
if (!root)
{
- flist.Add(new FileInfo(true, ".."));
+ flist.Add(new FileInfo(true, "..", folder + ".."));
}
IsolatedStorageFile iso = IsolatedStorageFile.GetUserStoreForApplication();
- foreach (string s in iso.GetDirectoryNames(folder + "*"))
+ List<string> folders = new List<string>(iso.GetDirectoryNames(folder + "*"));
+ List<string> files = new List<string>(iso.GetFileNames(folder + mask));
+
+ folders.Sort();
+ files.Sort();
+
+ foreach (string s in folders)
{
- flist.Add(new FileInfo(true, s));
+ flist.Add(new FileInfo(true, s, folder + s));
}
- foreach (string s in iso.GetFileNames(folder + "*"))
+ foreach (string s in files)
{
- flist.Add(new FileInfo(false, s));
+ flist.Add(new FileInfo(false, s, folder + s));
}
return flist;