以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [分享]删除行时,同时删除图片或文件列中相应的多个文件 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=99224) |
-- 作者:WELOVEFOX -- 发布时间:2017/4/14 21:48:00 -- [分享]删除行时,同时删除图片或文件列中相应的多个文件 在学习摄像头拍照的过程中,参考网站里面的所有例子, 发现有一个例子举例了删除行,同时删除相应图片的代码, 但是只限于图片列中,每项只可含一个图片,没有相应删除图片列内含多个图片的例子或代码, 在学习过程中,一开始用的方法已经错误了,使用数组或集合来执行,一直出错, 后来想明白了,图片列里面的内容是带有换行符的字符串, 要先处理字符串,所以现分享一下可以同时删除多个附件的代码, 例一表:学籍表,有图片列:相片 代码为: 在表事件beforedeletedatarow加入: If Messagebox.Show("该行图片记录一并删除","提示",MessageBoxButtons.YesNo,MessageBoxIcon.Question) = DialogResult.Yes Dim r As Row = Tables("学籍表").Current Dim Multi As String = r("相片") Dim Values() As String Values = Multi.split(vbLf) For Index As Integer = 0 To Values.Length - 1 FileSys.DeleteFile(ProjectPath & "Attachments\\" & Values(Index),2,2) Next End If 即可。 但是按网站中其它例子里面加入相片列内,加入判断含有实际文件,才执行的语句时, 上述代码不起作用,只删除了该行数据,没有删除对应图片文件,请求懂的老师傅们指导下,谢谢。 If FileSys.FileExists(ProjectPath & "Attachments\\" & e.DataRow("相片")) Then If Messagebox.Show("该行图片记录一并删除","提示",MessageBoxButtons.YesNo,MessageBoxIcon.Question) = DialogResult.Yes Then Dim r As Row = Tables("学籍表").Current Dim Multi As String = r("相片") Dim Values() As String Values = Multi.split(vbLf) For Index As Integer = 0 To Values.Length - 1 FileSys.DeleteFile(ProjectPath & "Attachments\\" & Values(Index),2,2) Next End If End If [此贴子已经被作者于2017/4/15 0:05:02编辑过]
|
-- 作者:WELOVEFOX -- 发布时间:2017/4/14 22:01:00 -- 其例子使用是判断文件夹是否存在,因为带有换行符等,判断出错,所以我改为列内容不为空,来提示: If e.DataRow("相片") <> Nothing Then If Messagebox.Show("该行图片记录一并删除","提示",MessageBoxButtons.YesNo,MessageBoxIcon.Question) = DialogResult.Yes Then Dim r As Row = Tables("学籍表").Current Dim Multi As String = r("相片") Dim Values() As String Values = Multi.split(vbLf) For Index As Integer = 0 To Values.Length - 1 FileSys.DeleteFile(ProjectPath & "Attachments\\" & Values(Index),2,2) Next End If End If [此贴子已经被作者于2017/4/14 22:02:27编辑过]
|
-- 作者:WELOVEFOX -- 发布时间:2017/4/14 22:13:00 -- 突然灵感一来,终于可以进行文件是否存在的代码了: If e.DataRow("相片") <>"" Then If Messagebox.Show("该行图片记录一并删除","提示",MessageBoxButtons.YesNo,MessageBoxIcon.Question) = DialogResult.Yes Then Dim r As Row = Tables("学籍表").Current Dim Multi As String = r("相片") Dim Values() As String Values = Multi.split(vbLf) For Index As Integer = 0 To Values.Length - 1 If FileSys.FileExists(ProjectPath & "Attachments\\" & Values(Index)) Then FileSys.DeleteFile(ProjectPath & "Attachments\\" & Values(Index),2,2) End If Next End If End If |
-- 作者:有点蓝 -- 发布时间:2017/4/14 22:17:00 -- 还有问题么? |
-- 作者:WELOVEFOX -- 发布时间:2017/4/15 0:05:00 -- 以下是引用有点蓝在2017/4/14 22:17:00的发言: 没有了,谢谢关注
还有问题么? |