以文本方式查看主题

-  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=145288)

--  作者:guosheng
--  发布时间:2020/1/15 8:43:00
--  远程ftp文件管理,如何删除远程文件?

图片点击可在新窗口打开查看此主题相关图片如下:123.jpg
图片点击可在新窗口打开查看

1.用户点击“删除”(是FileManager自带的删除功能),只是删除了数据库的表中,相应字段的文件相对路径;实际上远程文件并未删除
2.若用户点击“取消”,RejectChanges也是,删除了   数据库的表中,相应字段的文件相对路径; 实际上远程文件并未删除
DataTables("dp").RejectChanges()   \'取消当前的录入操作
forms("上传首页文件").Close()

上述两种情况,该如何真正删除远程文件啊?
[此贴子已经被作者于2020/1/15 8:48:09编辑过]

--  作者:有点蓝
--  发布时间:2020/1/15 9:14:00
--  
这里有一个逻辑悖论,假如删除按钮真正删除了远程文件,但是却又调用了RejectChanges()取消当前的更改操作,这时单元格数据恢复为未删除前数据,但是远程文件已经被删除,无法还原了。这就是为什么删除按钮不删除远程文件的原因。

所以:可以自己写代码删除:http://www.foxtable.com/webhelp/topics/1410.htm,删除后保存数据,避免被RejectChanges()影响

--  作者:guosheng
--  发布时间:2020/1/15 10:13:00
--  
以下是把所有的远程文件删除了;
结合FileManager控件,如何只删除用户在FileManage中选择的一个文件,并且把数据库中当前当行 这个已删除文件的路径 也删除啊?

Dim ftp As new FTPClient  
ftp.Host=
ftp.Account = 
ftp.Password =  

Dim cr As Row = Tables("dp").Current
Dim fls As List(of String)
fls =cr.DataRow.Lines("filepath")
Dim wjs= fls.Count

Dim Sum As Integer=wjs
Dim i As Integer
For i = 0  To Sum-1

If ftp.DeleteFile(fls(i)) = True Then
    Messagebox.show("删除完成!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
Else
    Messagebox.show("删除失败!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
End If
‘messagebox.show(fls(i))
Next
[此贴子已经被作者于2020/1/15 10:17:23编辑过]

--  作者:有点蓝
--  发布时间:2020/1/15 10:17:00
--  
参考:http://www.foxtable.com/webhelp/topics/1899.htm