我想在特定目录中返回图像文件。我想像这样创建图像路径
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>";
}
但它返回磁盘上文件的物理路径。我该怎么做?
答案 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