Là một câu trả lời bổ sung (hoặc kết hợp với các câu trả lời hiện có), bạn có thể viết một phương thức mở rộng để thực hiện điều này cho bạn trong lớp DirectoryInfo. Đây là một mẫu mà tôi đã viết khá nhanh có thể được tô điểm để cung cấp tên thư mục hoặc các tiêu chí khác để sửa đổi, v.v .:
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>();
}
}
}
Chỉnh sửa: Tôi cũng nghĩ rằng phương pháp này có thể được đơn giản hóa hoặc tuyệt vời nếu nó sử dụng LINQ để đạt được việc xây dựng mảng, nhưng tôi không có kinh nghiệm trong LINQ để thực hiện đủ nhanh cho một mẫu loại này.
Chỉnh sửa 2 (gần 4 năm sau): Đây là phương pháp LINQ-ified tôi sẽ sử dụng:
public static class myExtensions
{
public static IEnumerable<string> GetFileNamesWithoutExtensions(this DirectoryInfo di)
{
return di.GetFiles()
.Select(x => Path.GetFileNameWithoutExtension(x.FullName));
}
}