如何在GRIDVIEW中删除文件路径同时删除文件?

adamwyj 2009-12-30 02:48:56
源码如下:

我检查过几次代码了, 没有任何报错, 问题就出在文件老是删不了路径中的图片文件.

<%@ Page Language="VB" %>

<%@ Import Namespace="System.IO" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

Protected Sub GridView1_RowCommand(ByVal sender As Object, ByVal e As GridViewCommandEventArgs)
If GridView1.EditIndex = -1 Then
Return
End If
Dim fileUpLoad As FileUpload = TryCast(GridView1.Rows(GridView1.EditIndex).FindControl("FileUpload1"), FileUpload)
Dim fileName As String = Guid.NewGuid().ToString()
Dim extension As String = System.IO.Path.GetExtension(fileUpLoad.FileName)
If fileUpLoad.HasFile Then
'When insert a file, rename image as guid name
fileUpLoad.SaveAs(Server.MapPath("~/images/" + "/" + fileName + extension))
Me.SqlDataSource1.UpdateParameters("image_name").DefaultValue = fileName + extension
Else
' Me.SqlDataSource1.UpdateParameters("image_name").DefaultValue=
End If
End Sub


Protected Sub GridView1_RowDeleting(ByVal sender As Object, ByVal e As GridViewDeleteEventArgs)
'取得图片名称
Dim imageName As String = GridView1.DataKeys(e.RowIndex).Values("image_name").ToString()
'customer.delete(GridView1.DataKeys(e.RowIndex).Values(0).ToString())
'FillCustomerInGrid()
'test
'Response.Write(delimg)
'problem is here
Dim path As String = Server.MapPath("~/images") + imageName
File.Delete(path)
End Sub

</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
DataKeyNames="id" DataSourceID="SqlDataSource1"
EmptyDataText="没有可显示的数据记录。" AllowPaging="True" AllowSorting="True"
CellPadding="4" ForeColor="#333333" GridLines="None" OnRowCommand="GridView1_RowCommand">
<RowStyle BackColor="#FFFBD6" ForeColor="#333333" />
<Columns>
<asp:CommandField ShowDeleteButton="True" ShowEditButton="True"
ShowSelectButton="True" />
<asp:BoundField DataField="id" HeaderText="id" ReadOnly="True"
SortExpression="id" />
<asp:TemplateField>
<EditItemTemplate>
<asp:Image ID="Image2" runat="server" ImageUrl='<%# "images/" + DataBinder.Eval(Container.DataItem, "image_name") %>' />
<asp:FileUpload ID="FileUpload1" value="img.jpg" runat="server" />

</EditItemTemplate>
<ItemTemplate>
<asp:Image ID="Image3" runat="server" ImageUrl='<%# "images/" + DataBinder.Eval(Container.DataItem, "image_name") %>' />
</ItemTemplate>
</asp:TemplateField>

</Columns>
<FooterStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#FFCC66" ForeColor="#333333" HorizontalAlign="Center" />
<SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="Navy" />
<HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
<AlternatingRowStyle BackColor="White" />
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:deareConnectionString1 %>"
DeleteCommand="DELETE FROM [Table1] WHERE [id] = @id"
InsertCommand="INSERT INTO [Table1] ([id], [image_name]) VALUES (@id, @image_name)"
ProviderName="<%$ ConnectionStrings:deareConnectionString1.ProviderName %>"
SelectCommand="SELECT [id], [image_name] FROM [Table1]"
UpdateCommand="UPDATE [Table1] SET [image_name] = @image_name WHERE [id] = @id">
<DeleteParameters>
<asp:Parameter Name="id" Type="String" />
</DeleteParameters>
<InsertParameters>
<asp:Parameter Name="id" Type="String" />
<asp:Parameter Name="image_name" Type="String" />
</InsertParameters>
<UpdateParameters>

<asp:Parameter Name="id" Type="String" />
<asp:Parameter Name="image_name" Type="String" />
</UpdateParameters>
</asp:SqlDataSource>

<br />

</div>
</form>
</body>
</html>
...全文
178 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
adamwyj 2010-01-07
  • 打赏
  • 举报
回复
复14楼,
有这人控件,
<ItemTemplate>
<asp:Image ID="Image3" runat="server" ImageUrl='<%# "images/" + DataBinder.Eval(Container.DataItem, "image_name") %>' />

<asp:HyperLink ID="HyperLink1" runat="server" Text='<%# Eval("image_name") %>'
Visible="true"></asp:HyperLink>

</ItemTemplate>

上面的可能忘了贴
xray2005 2010-01-06
  • 打赏
  • 举报
回复
Dim imagename As String = (TryCast(GridView1.Rows(e.RowIndex).FindControl("HyperLink1"), HyperLink)).Text

HyperLink1这个控件在哪里呢?在你贴的代码中没看到呢!
adamwyj 2010-01-06
  • 打赏
  • 举报
回复
谢谢各位大虾热心的回复, 我出去了几天今天才回来.

我改了代码如下, 但还是不行:

Protected Sub GridView1_RowDeleting(ByVal sender As Object, ByVal e As GridViewDeleteEventArgs)

'取得图片名称
Dim imagename As String = (TryCast(GridView1.Rows(e.RowIndex).FindControl("HyperLink1"), HyperLink)).Text
'problem's here
Dim path As String = Server.MapPath("~/images/") + imagename
If File.Exists(path) Then
File.Delete(path)
End If

End Sub

可以确定:
1, 路径没有问题, 因为我UPLOAD时就这个路径, 请看一楼代码;
2, IMAGENAME 有后缀名;
3, 文件权限也OK.

可就是删不掉文件.....痛哭......

想请教一下, 有没有什么方法可以在删文件前来测式权限与路径是否正确?

Chris333 2009-12-30
  • 打赏
  • 举报
回复
11楼的做法很好 应该先判断下 有了删没有就不删

你的问题我以前也遇到过 如果确认了代码没问题 那除了路径问题就是文件夹的访问权限问题
happy664618843 2009-12-30
  • 打赏
  • 举报
回复
string path=server.Mappath("File/")+filename;
if(File.Exists(path))
{
File.Delete(path);
}
mngzilin 2009-12-30
  • 打赏
  • 举报
回复
路径错误
che2piaopiao 2009-12-30
  • 打赏
  • 举报
回复
确定不是路径问题?


如果确实不是路径问题, 去检查文件系统权限。
foxsorange 2009-12-30
  • 打赏
  • 举报
回复
Dim path As String = Server.MapPath("~/images/") + imageName
chen_ya_ping 2009-12-30
  • 打赏
  • 举报
回复
建议楼主还是自己调试一下。是不是逻辑没有搞的清楚?
人间太皮 2009-12-30
  • 打赏
  • 举报
回复
然后还要确定你的imageName包含了文件后缀名
人间太皮 2009-12-30
  • 打赏
  • 举报
回复
Dim path As String = Server.MapPath("~/images/") + imageName
人间太皮 2009-12-30
  • 打赏
  • 举报
回复
Dim path As String = Server.MapPath("~/images") + imageName


在 images 后面是不是应该加个"/"啊???


粗心,呵呵
别递烟哥不会 2009-12-30
  • 打赏
  • 举报
回复
File类,根据路径删除文件
cswdcswd 2009-12-30
  • 打赏
  • 举报
回复
估计是路径问题呀,如果路径正确,因该可以删掉的!
huming_h 2009-12-30
  • 打赏
  • 举报
回复
查看 File.Delete(path) //放断点看看path路径是否正确。

62,254

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧