以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]FTP删除后台文件和目录  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=159110)

--  作者:suliao9641
--  发布时间:2020/12/14 13:57:00
--  [求助]FTP删除后台文件和目录
两点要求,代码执行无效,请版主看看代码哪里错了
1.删除文件管理器里的图片时,同时删除后台FTP图片
2.删除行时,同时删除后台编号的文件夹。

图片点击可在新窗口打开查看此主题相关图片如下:删除附件.png
图片点击可在新窗口打开查看


If e.DataCol.name = "图片" Or e.DataCol.name = "文件" Then
    Dim p As String="\\图片文件\\" & e.DataTable.Name & "\\" & e.DataRow("编号")
    Dim ftp As New FTPClient
    ftp.host=vars("FTP_ip地址")
    ftp.Account =vars("FTP_账号")
    ftp.password =vars("FTP_密码")
    ftp.Port= vars("FTP_端口")
    If ftp.DeleteFile(p & "\\" & e.FileName) = True Then
        Messagebox.show("删除完成!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    Else
        Messagebox.show("删除失败!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    End If
End If

全局表事件BeforeDeleteFile事件的代码无效。删除文件的时候感觉代码没有执行一样


图片点击可在新窗口打开查看此主题相关图片如下:删除行.png
图片点击可在新窗口打开查看

Dim p As String="\\图片文件\\" & e.DataTable.Name & "\\" & e.DataRow("编号")
Dim ftp As New FTPClient
ftp.host=vars("FTP_ip地址")
ftp.Account =vars("FTP_账号")
ftp.password =vars("FTP_密码")
ftp.Port= vars("FTP_端口")
If ftp.DeleteDir(p, True) = True Then
    Messagebox.show("删除完成!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
Else
    Messagebox.show("删除失败!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
End If




--  作者:有点蓝
--  发布时间:2020/12/14 14:10:00
--  
我测试没有问题,确定ftp路径是i正确的
msgbox(p & "\\" & e.FileName)

msgbox("\\图片文件\\" & e.DataTable.Name & "\\" & e.DataRow("编号"))
--  作者:suliao9641
--  发布时间:2020/12/14 14:47:00
--  
这个两个MSGBOX代码我加进去了,但是,操作的时候都没有反应。根本就不弹出来


--  作者:有点蓝
--  发布时间:2020/12/14 14:54:00
--  
只能说明操作的根本不是写了事件的表。
--  作者:suliao9641
--  发布时间:2020/12/14 16:02:00
--  
全局表事件不行么。需要窗口表写代码么

图片点击可在新窗口打开查看此主题相关图片如下:全局表事件.png
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2020/12/14 16:13:00
--  
没有开启事件:http://www.foxtable.com/webhelp/topics/0671.htm

窗口afterload,或者fill之后
DataTables("表A").GlobalHandler.BeforeDeleteFile = True

--  作者:suliao9641
--  发布时间:2020/12/15 9:39:00
--  
全局表事件AfterLoad事件,加上下面代码问题解决
For Each dt As DataTable In DataTables
    dt.GlobalHandler.BeforeDeleteFile = True
    dt.GlobalHandler.DataRowDeleted = True
Next