C# 遍历文件夹及子目录下所有图片.

时间:2021-01-10 12:25:50

要求:取指定目录下面的所有图片,以表格的型式展示并显示该图片的相对路径。

服务端代码:

 public partial class ViewIcon : System.Web.UI.Page
{
JArray ja
= new JArray(); //定义一个数组
public string info = string.Empty;
protected void Page_Load(object sender, EventArgs e)
{
var path1 = System.AppDomain.CurrentDomain.BaseDirectory;//获取程序集目录
string path = Path.Combine(path1, "Image", "menu");//Path.Combine 将3个字符串组合成路径
var images = Directory.GetFiles(path, ".", SearchOption.AllDirectories).Where(s => s.EndsWith(".png") || s.EndsWith(".jpg") || s.EndsWith(".gif"));
//images = Directory.GetFiles(path, "*.png|*.jpg", SearchOption.AllDirectories);
//Directory.GetFiles 返回指定目录的文件路径 SearchOption.AllDirectories 指定搜索当前目录及子目录

//遍历string 型 images数组
foreach (var i in images){
var str = i.Replace(path1, "");//获取相对路径
var path2 = str.Replace("\\", "/");将字符“\\”转换为“/
ja.Add(path2);
}

info
= Newtonsoft.Json.JsonConvert.SerializeObject(ja);//序列化为String
}
}

前端代码:

<script type="text/javascript">
$(
function(){
var images = <%=info%>;
var list = [];
list.push(
"<table>");
list.push(
"<thead>");
list.push(
"<tr>");
list.push(
"<td>图标</td>");
list.push(
"<td>路径</td>");
list.push(
"<td>图标</td>");
list.push(
"<td>路径</td>");
list.push(
"</tr>");
list.push(
"</thead>");
list.push(
"<tbody>");
$.each(images,
function (a,b) {
if((a+1)%2==0){
list.push(
"<td>"+"<img width='50' height='50' src = '../../" + b + "'></td>");
list.push(
"<td>"+b+"</td>");
list.push(
"</tr>");
}
if((a+1)%2!=0){
list.push(
"<tr>");
list.push(
"<td>"+"<img width='50' height='50' src = '../../" + b + "'></td>");
list.push(
"<td>"+b+"</td>");
}
})
list.push(
"</tbody>");
list.push(
"</table>");
list.push(
"<br>");
var images = list.join("");
$(
"#imgs").append(images);
})

</script>

 

效果图如下:
C# 遍历文件夹及子目录下所有图片.