2

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

  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>";
        }

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

4

2 回答 2

6

您可以使用Path.GetFileName

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

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

于 2013-07-10T20:34:38.833 回答
5

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

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

GetFiles的DirectoryInfo版本返回 FileInfo 对象而不是文件路径作为字符串,因此您可以对结果做更多​​的事情。我碰巧有一个选择,只需为 GetFiles 返回的每个 FileInfo 实例投影一个 FileName ,但如果您需要对文件执行更多操作,您可以删除该文件,然后循环遍历 FileInfo 对象。

此外,我正在使用具有模式的重载,可以轻松忽略您的非图像文件。

目录信息文档;http://msdn.microsoft.com/en-us/library/8he88b63.aspx

于 2013-07-10T20:35:53.053 回答