当我使用下面的代码行时,我会得到一个字符串数组,其中包含各个文件的整个路径.

private string[] pdfFiles = Directory.GetFiles("C:\\Documents", "*.pdf");

我想知道是否有办法只检索字符串中的文件名,而不是整个路径.

推荐答案

可以使用Path.GetFileName从完整路径获取文件名

private string[] pdfFiles = Directory.GetFiles("C:\\Documents", "*.pdf")
                                     .Select(Path.GetFileName)
                                     .ToArray();

编辑:上面的解决方案使用LINQ,所以需要.至少净3.5分.以下是一个适用于早期版本的解决方案:

private string[] pdfFiles = GetFileNames("C:\\Documents", "*.pdf");

private static string[] GetFileNames(string path, string filter)
{
    string[] files = Directory.GetFiles(path, filter);
    for(int i = 0; i < files.Length; i++)
        files[i] = Path.GetFileName(files[i]);
    return files;
}

.net相关问答推荐

如何在AutoMapper中添加自定义方法到项目中?

EFCore.DbSet.Update 方法添加新行而不是更新它

等待时 Blazor 服务器按钮刷新

如果只有一个 : 存在于字符串中,则提取冒号后的内容

如何规范机器之间连字符的排序顺序?

process.WaitForExit() 异步

在 C# 中获取 log4net 日志(log)文件

整个命名空间的SuppressMessage

有什么方法可以使用 .NET 应用程序使用 git 吗?

为什么 ?: 会导致转换错误,而 if-else 不会?

我应该从 .NET 中的 Exception 或 ApplicationException 派生自定义异常吗?

为什么 Interlocked.Exchange 不支持布尔类型?

如何使用 NUnit(或可能使用另一个框架)测试异步方法?

为什么 .NET 中不需要 Maven?

公钥令牌的作用是什么?

是否有可用的 WPF 备忘单?

如何允许程序集(单元测试)访问另一个程序集的内部属性?

在 C#/.NET 中组合路径和文件名的最佳方法是什么?

您可以使用 Xamarin 开发 Linux 应用程序吗?

LINQ 可以与 IEnumerable 一起使用吗?