仅从目录中检索文件名

时间:2012-10-11 18:42:09

标签: c#

使用Directory类库我正在尝试检索文件夹中存在的所有文件名称,如下所示:

 private void button1_Click(object sender, EventArgs e)
     {
        string[] filePaths = Directory.GetFiles(@"d:\Images\", "*.png");
        foreach (string img in filePaths)
        {
          listBox1.Items.Add(img.ToString());
        }
    }

如您所知,此方法返回文件的完整路径和名称,但我只需要获取文件名。是否可以在目录类中执行此操作?我必须使用Path类吗?如果是的话,如何在没有文件名的情况下为变量分配路径? 谢谢,

6 个答案:

答案 0 :(得分:2)

您可以使用Path.GetFileName方法

var file = Path.GetFileName(img);

答案 1 :(得分:2)

试试这个:

using System.IO;

...

private void button1_Click(object sender, EventArgs e) 
{ 
    string[] filePaths = Directory.GetFiles(@"d:\Images\", "*.png"); 
    foreach (string img in filePaths) 
    { 
        listBox1.Items.Add(Path.GetFileName(img)); 
    } 
} 

答案 2 :(得分:0)

您可以使用

var files = Directory.EnumerateFiles(path,searchpattern);

var files = Directory.EnumerateFiles(@"C:\Users\roberth\Programming_Projects\Common\UI\bin\Debug\",
                                                 "*.xml");
            var filename = new List<string>();
            Console.WriteLine("Parsing Files...");
            foreach (var file in files)
            {
                filename.Add(file);
                Console.WriteLine("Parsing file: " + file);
                ....

答案 3 :(得分:0)

使用DirectoryInfo代替Directory。它返回FileInfo,您可以获得。{/ p>的Name属性

 private void button1_Click(object sender, EventArgs e)
 {
    var filePaths = new DirectoryInfo.GetFiles(@"d:\Images\", "*.png").Select(x => x.Name);
    foreach (string img in filePaths)
    {
      listBox1.Items.Add(img.ToString());
    }
 }

答案 4 :(得分:0)

来自MSDN

string fileName = @"C:\mydir\myfile.ext";
string path = @"C:\mydir\";
string result;

result = Path.GetFileName(fileName);
Console.WriteLine("GetFileName('{0}') returns '{1}'", 
    fileName, result);

result = Path.GetFileName(path);
Console.WriteLine("GetFileName('{0}') returns '{1}'", 
    path, result);

// This code produces output similar to the following: 
// 
// GetFileName('C:\mydir\myfile.ext') returns 'myfile.ext' 
// GetFileName('C:\mydir\') returns ''

答案 5 :(得分:0)

string aPath= @"course\train\yes\";
var fileNames=Directory.GetFiles(aPath).Select(name=>Path.GetFileName(name)).ToArray();