// Copyright (c) 2010
// by http://openlightgroup.net/
using System;
using System.Data;
using System.Linq;
using System.Web;
using System.Xml.Linq;
using System.Net.Mail;
using System.Text;
using System.Collections.Generic;
using System.IO;
using System.Web.Security;
namespace SilverlightDebateForum
{
public class Utility
{
#region GetAllFileNames
/// <summary>
/// Find all files in a directory, and all files within every nested
/// directory.
/// from: http://dotnetperls.com/Content/Recursively-Find-Files.aspx
/// </summary>
/// <param name="baseDir">The starting directory you want to use.</param>
/// <returns>A string array containing all the file names.</returns>
public static string[] GetAllFileNames(string baseDir)
{
// Store results in the file results list.
List<string> fileResults = new List<string>();
// Store a stack of our directories.
Stack<string> directoryStack = new Stack<string>();
directoryStack.Push(baseDir);
// While there are directories to process and we don't have too many results
while (directoryStack.Count > 0 && fileResults.Count < 1000)
{
string currentDir = directoryStack.Pop();
// Add all files at this directory.
foreach (string fileName in Directory.GetFiles(currentDir, "*.*"))
{
fileResults.Add(fileName);
}
// Add all directories at this directory.
foreach (string directoryName in Directory.GetDirectories(currentDir))
{
directoryStack.Push(directoryName);
}
}
return fileResults.ToArray();
}
#endregion
}
}
|