DirectoryInfo di = new DirectoryInfo(Server.MapPath("LOGO"));//找到图片所在的路径
FileInfo[] fiArray = di.GetFiles(); //读取该路径下所有文件
foreach (FileInfo fi in fiArray)
{
string fileType = fi.Name.Substring(fi.Name.LastIndexOf(".") + 1);//取后缀名
if (fileType == "bmp")//是bmp则添加。
{
ImageButton img = new ImageButton();
//Image img = new Image();
img.ID = fi.Name.Substring(0, 3);
img.ImageUrl = @"/SafeGuard/LOGO/" + fi.Name;//filepath+"/"+fi.Name;
img.Click += new ImageClickEventHandler(img_Click);
e.Item.Controls.Add(img);
}
}
上面的代码是没有问题的。
对于相对路径和物理路径的问题我绕了一大圈。
刚开始的时候我直接用的是 DirectoryInfo di = new DirectoryInfo("LOGO");本地测是可以的,原因是它直接找到的还是应用程序所有的物理路径,所以在发布后放到服务器上得到的是“未能找到路径“C:/WINDOWS/system32/LOGO”的一部分。”找不到相应的物理路径E:/WORK/SAFEGUARD/LOGO/000。BMP但是,为什么会这么提示我倒不明白了。我IIS的默认路径设置的是F:COMMON/SITEWEB而它怎么指向了C盘下?
后来我想通过完全指向