В качестве дополнительного ответа (или в качестве дополнения к существующим ответам) вы можете написать метод расширения, чтобы выполнить это для вас в классе DirectoryInfo. Вот пример, который я написал довольно быстро, который можно украсить, чтобы предоставить имена каталогов или другие критерии для модификации, и т. Д .:
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>();
}
}
}
Редактировать: Я также думаю, что этот метод мог бы быть упрощен или удивительным, если бы он использовал LINQ для достижения построения массива, но у меня нет опыта в LINQ, чтобы сделать это быстро достаточно для такого образца.
Редактировать 2 (почти 4 года спустя): Вот метод LINQ-ified, который я бы использовал:
public static class myExtensions
{
public static IEnumerable<string> GetFileNamesWithoutExtensions(this DirectoryInfo di)
{
return di.GetFiles()
.Select(x => Path.GetFileNameWithoutExtension(x.FullName));
}
}