如何检索目录中的所有文件名?

发布于 2024-09-18 23:39:16 字数 159 浏览 2 评论 0原文

如何检索目录中与某个模式匹配的所有文件名?我尝试了这个,但它返回完整路径而不是文件名。

Directory.GetFiles (path, "*.txt")

我是否必须手动从结果中裁剪目录路径?这很简单,但也许有一个更简单的解决方案:)

How do I retrieve all filenames matching a pattern in a directory? I tried this but it returns the full path instead of the filename.

Directory.GetFiles (path, "*.txt")

Do I have to manually crop the directory path off of the result? It's easy but maybe there is an even simpler solution :)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

烟沫凡尘 2024-09-25 23:39:16
foreach (string s in Directory.GetFiles(path, "*.txt").Select(Path.GetFileName))
       Console.WriteLine(s);
foreach (string s in Directory.GetFiles(path, "*.txt").Select(Path.GetFileName))
       Console.WriteLine(s);
郁金香雨 2024-09-25 23:39:16

假设您使用 C#,DirectoryInfo 类将对您更有用:

DirectoryInfo directory = new DirectoryInfo(path);
FileInfo[] files = directory.GetFiles("*.txt");

FileInfo 类包含一个属性 Name,它返回不带路径的名称。

请参阅DirectoryInfo 文档FileInfo 文档了解更多信息。

Assuming you're using C#, the DirectoryInfo class will be of more use to you:

DirectoryInfo directory = new DirectoryInfo(path);
FileInfo[] files = directory.GetFiles("*.txt");

The FileInfo class contains a property Name which returns the name without the path.

See the DirectoryInfo documentation and the FileInfo documentation for more information.

硬不硬你别怂 2024-09-25 23:39:16

您想通过子目录递归吗?使用 Directory.EnumerateFiles

var fileNames = Directory.EnumerateFiles(@"\", "*.*", SearchOption.AllDirectories);

Do you want to recurse through subdirectories? Use Directory.EnumerateFiles:

var fileNames = Directory.EnumerateFiles(@"\", "*.*", SearchOption.AllDirectories);
瞎闹 2024-09-25 23:39:16

在代码中使用 Path.GetFileName

foreach(var file in Directory.GetFiles(path, "*.txt"))
{
   Console.WriteLine(Path.GetFileName(file));
}

另一个解决方案:

DirectoryInfo dir = new DirectoryInfo(path);
var files = dir.GetFiles("*.txt");
foreach(var file in files)
{
   Console.WriteLine(file.Name);
}

Use Path.GetFileName with your code:

foreach(var file in Directory.GetFiles(path, "*.txt"))
{
   Console.WriteLine(Path.GetFileName(file));
}

Another solution:

DirectoryInfo dir = new DirectoryInfo(path);
var files = dir.GetFiles("*.txt");
foreach(var file in files)
{
   Console.WriteLine(file.Name);
}
信仰 2024-09-25 23:39:16

您可以使用以下代码来获取文件名:

    DirectoryInfo info  = new DirectoryInfo("C:\Test");
    FileInfo[] files = info.GetFiles("*.txt");

    foreach(FileInfo file in files)
    {
        string fileName = file.Name;
    }

You can use the following code to obtain the filenames:

    DirectoryInfo info  = new DirectoryInfo("C:\Test");
    FileInfo[] files = info.GetFiles("*.txt");

    foreach(FileInfo file in files)
    {
        string fileName = file.Name;
    }
鯉魚旗 2024-09-25 23:39:16
var filenames = Directory.GetFiles(@"C:\\Images", "*.jpg").
                Select(filename => Path.GetFileNameWithoutExtension(filename)).
                ToArray();

如果这是你想要的,试试这个

var filenames = Directory.GetFiles(@"C:\\Images", "*.jpg").
                Select(filename => Path.GetFileNameWithoutExtension(filename)).
                ToArray();

Try this if it is what you want

神经暖 2024-09-25 23:39:16

试试这个

IEnumerable<string> fileNames =
                Directory.GetFiles(@"\\srvktfs1\Metin Atalay\", "*.dll")
                    .Select(Path.GetFileNameWithoutExtension);

Try this

IEnumerable<string> fileNames =
                Directory.GetFiles(@"\\srvktfs1\Metin Atalay\", "*.dll")
                    .Select(Path.GetFileNameWithoutExtension);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文