Directory.GetFiles()返回完整路径

时间:2013-07-10 20:32:22

标签: c# asp.net .net directory

我想在特定目录中返回图像文件。我想像这样创建图像路径

  string[] ImageNames = Directory.GetFiles(path);


        string tds="";
        for (int i = 0; i < ImageNames.Length; i++)
        {
          tds += "<tr> <td> <img href=/Articles/ArticleImageStore/'" + ImageNames[i] + "' width='64' height='64'></img></tr> </td>";
        }

但它返回磁盘上文件的物理路径。我该怎么做?

2 个答案:

答案 0 :(得分:5)

您可以使用Path.GetFileName

string[] ImageNames = Directory.GetFiles(path)
                                    .Select(p => Path.GetFileName(p)).ToArray();

这将生成一个仅包含文件名称的列表。

答案 1 :(得分:4)

我不会使用Directory类,而是使用DirectoryInfo,你可以这样做;

 string[] fNames = new DirectoryInfo(dirPath).GetFiles("*.png").Select(x => x.FileName).ToArray();

GetFiles的DirectoryInfo版本返回FileInfo对象而不是文件路径作为字符串,因此您可以使用结果执行更多操作。我碰巧有一个选择通过为GetFiles返回的每个FileInfo实例投射FileName来使其无效,但如果您需要对可以删除的文件执行更多操作,那么将循环遍历FileInfo对象。

另外,我正在使用一个具有模式的重载,这样可以很容易地忽略非图像文件。

DirectoryInfo文档; http://msdn.microsoft.com/en-us/library/8he88b63.aspx