Como resposta adicional (ou para complementar as respostas existentes), você pode escrever um método de extensão para fazer isso dentro da classe DirectoryInfo. Aqui está um exemplo que escrevi rapidamente, que pode ser embelezado para fornecer nomes de diretório ou outros critérios para modificação, 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>();
}
}
}
Edit: Eu também acho que esse método provavelmente poderia ser simplificado ou impressionante se usasse o LINQ para conseguir a construção da matriz, mas não tenho a experiência no LINQ para fazê-lo com rapidez suficiente para uma amostra desse tipo.
Editar 2 (quase 4 anos depois): Aqui está o método LINQ-ified que eu usaria:
public static class myExtensions
{
public static IEnumerable<string> GetFileNamesWithoutExtensions(this DirectoryInfo di)
{
return di.GetFiles()
.Select(x => Path.GetFileNameWithoutExtension(x.FullName));
}
}