Add a Label On your Datalist...That Label Would be bind by the path.. like ~/Upload/image.jpg or ..Upload/image.jpg
<asp:datalist id="DataList1" runat="server" repeatcolumns="4" cellpadding="4" width="100%" ondeletecommand="DataList1_DeleteCommand" xmlns:asp="#unknown">
<asp:image id="Image1" imageurl="<%# String.Format("~/DistributorShopImages/{0}", Eval("ShopImagesExt")) %>" onclick="LoadDiv(this.src, this)" style="cursor:pointer" runat="server" height="200">
Width="200" />
<asp:label id="lbl_del_image" runat="server" text="<%#Eval("ShopImagesExt") %>" visible="false">
<asp:linkbutton id="Delete" height="22px" width="100px" runat="server" forecolor="Red" text="Delete" onclick="Delete_Click" />
protected void Delete_Click(object sender, EventArgs e)
{
DataListItem item = ((LinkButton)sender).NamingContainer as DataListItem;
Label del_path = (Label)item.FindControl("bl_del_image");
string str =del_path.Text;
String strPath = Server.MapPath(str);
System.IO.File.Delete(strPath);
}