我一直将Confid.VirtualDir
用于我的路径。例如:
Config.VirtualDir + "upload/gallery/image.jpg"
这为我提供了 /upload/gallery/image.jpg 的路径。例如,在每个页面上的效果都很好:
<img style="height: 100px; " src="<%=Config.VirtualDir + "upload/gallery/image.jpg" %>" />
工作正常。
但是,现在我遇到了 Directory.GetFiles 。
它适用于:
protected string[] images;
images = Directory.GetFiles(@"C:\website\mysite.com\upload\gallery", "*.jpg");
但不是:
protected string[] images;
string path = Config.VirtualDir + "upload/gallery";
images = Directory.GetFiles(path,"*.jpg");
我在控制台中看不到任何错误。
我也尝试过"upload\gallery"
,但收到错误消息“无法识别转义序列”。
使用@"C:\website\mysite.com\upload\gallery"
将公开服务器的目录结构,我希望避免这种情况。
更新:基于 Alex K。的建议。我尝试过:
protected string[] images;
protected string realImage;
string path = Server.MapPath(@"~\upload\Gallery");
images = Directory.GetFiles(path, "*.jpg");
realImage = Path.Combine(Server.MapPath(@"~\upload\Gallery"), Config.VirtualDir + "upload/Gallery");
现在,我很困惑如何使用 GetFiles 的路径和realImage路径来获取我的图像。
UPDATE2 :可以使用。感谢 Alex K 。我在下面回答
答案 0 :(得分:0)
评论说明:
代码文件:
public List<string> images = new List<string>();
protected string realPath;
protected void Page_Load(object sender, EventArgs e)
{
string path = Server.MapPath(@"~\upload\Gallery");
// this gets the actual directory path.
realPath = Path.Combine(path, Config.VirtualDir + "upload/Gallery/");
//this changes the path to the VirtualDir path
DirectoryInfo di = new DirectoryInfo(path);
//this gets file names in the folder
foreach(var fi in di.GetFiles())
{
images.Add(fi.Name);
//adds file names to images list
}
}
HTML:
<img style="height: 100px; " src="<%=realPath + images[0]%>" />
//any images[i] is accessible