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