Como respuesta adicional (o para componer las respuestas existentes), podría escribir un método de extensión para lograr esto dentro de la clase DirectoryInfo. Aquí hay una muestra que escribí con bastante rapidez que podría ser embellecida para proporcionar nombres de directorio u otros criterios de modificación, etc.
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
namespace DocumentDistributor.Library
{
public static class myExtensions
{
public static string[] GetFileNamesWithoutFileExtensions(this DirectoryInfo di)
{
FileInfo[] fi = di.GetFiles();
List<string> returnValue = new List<string>();
for (int i = 0; i < fi.Length; i++)
{
returnValue.Add(Path.GetFileNameWithoutExtension(fi[i].FullName));
}
return returnValue.ToArray<string>();
}
}
}
Editar: también creo que este método probablemente podría simplificarse o hacerse increíble si usara LINQ para lograr la construcción de la matriz, pero no tengo la experiencia en LINQ para hacerlo lo suficientemente rápido para una muestra de este tipo.
Edición 2 (casi 4 años después): Aquí está el método LINQ-ified que usaría:
public static class myExtensions
{
public static IEnumerable<string> GetFileNamesWithoutExtensions(this DirectoryInfo di)
{
return di.GetFiles()
.Select(x => Path.GetFileNameWithoutExtension(x.FullName));
}
}