繁体   English   中英

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

[英]How do I retrieve all filenames in a directory?

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

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

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

foreach (string s in Directory.GetFiles(path, "*.txt").Select(Path.GetFileName))
       Console.WriteLine(s);

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

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

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

有关详细信息,请参阅DirectoryInfo文档FileInfo文档

你想通过子目录进行递归吗? 使用Directory.EnumerateFiles

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

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);
}
var filenames = Directory.GetFiles(@"C:\\Images", "*.jpg").
                Select(filename => Path.GetFileNameWithoutExtension(filename)).
                ToArray();

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

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

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

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

试试这个

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM