2

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

 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 类吗?如果是,我如何为没有文件名的变量分配路径?谢谢,

4

6 回答 6

2

你可以使用Path.GetFileName方法

var file = Path.GetFileName(img);
于 2012-10-11T18:43:09.803 回答
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)); 
    } 
} 
于 2012-10-11T18:43:49.247 回答
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);
                ....
于 2012-10-11T18:44:51.663 回答
0

使用DirectoryInfo而不是Directory. 它返回一个FileInfo您可以获得其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());
    }
 }
于 2012-10-11T18:44:54.643 回答
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 ''
于 2012-10-11T18:44:58.507 回答
0
string aPath= @"course\train\yes\";
var fileNames=Directory.GetFiles(aPath).Select(name=>Path.GetFileName(name)).ToArray();
于 2013-04-17T22:04:54.590 回答