以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]BeforeDeleteFile事件求助  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=153651)

--  作者:huangfanzi
--  发布时间:2020/8/18 13:30:00
--  [求助]BeforeDeleteFile事件求助
以下代码有一个错误,请老师指导下:
FTP上传文件后,如果我查看上传的文件(FileManager控件),系统会自动下载文件到本地的RemoteFiles目录,然后点在控件窗口中点删除,服务器上文件删除,本地也会跟着删除,这个没有问题
现在的问题是,如果上传文件后,我不查看,也就是说不会有文件下载到本地的RemoteFiles目录,然后发现某个文件上传错误了,直接点删除,由于本地没有此文件,因此就会报错
如何写代码判断下,如果本地没发现此文件,就不要执行红字部分代码
谢谢老师


If e.DataCol.name = "附件" Then
    Dim Result As DialogResult
    Result = MessageBox.Show("确定要删除文件【" & e.FileName & "】?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
    If Result = DialogResult.Yes Then
        _ftp.DeleteFile(e.FileName)
        FileSys.DeleteFile(ProjectPath & "RemoteFiles\\" & e.FileName.Replace("/","\\"))  \'同步删除本机上的文件
        Dim fls As List(of String)
        fls = _ftp.GetFileList(e.DataRow("货转编号")) \'返回此FTP目录下的文件数
        If fls.Count = 0 Then
            _ftp.DeleteDir(e.DataRow("货转编号"),True)  \'直接删除此目录及下面的所有文件
            FileSys.DeleteDirectory(ProjectPath & "RemoteFiles" & _ftp.RootDir.Replace("/","\\") & "\\" & e.DataRow("货转编号"),2,2)  \'删除本机的目录
        End If
        e.DataRow.Save
        _ftp.Close
    Else
        e.Cancel = True
    End If
End If

--  作者:有点蓝
--  发布时间:2020/8/18 13:57:00
--  
先判断在删除咯:http://www.foxtable.com/webhelp/topics/0337.htm