以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]FTP的FileExists方法无法正常检测到文件是否存在  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=18387)

--  作者:cqmeiyan
--  发布时间:2012/4/11 16:06:00
--  [求助]FTP的FileExists方法无法正常检测到文件是否存在

FTP的FileExists方法无法正常检测到文件是否存在

 

我现在通过狐表的FTPClient将文件上传到了FTP服务器,现在我要下载到本机,但由于上传文件错误等问题,可能有些文件在FTP服务器上找不到,所以我要在用Download下载到本机之前,要先判断此文件在FTP服务器上是否存在,如果存在,才执行下载命令

 

可是现在有个很奇怪的问题:

我直接用

    ftp1.Download(sfile, dfilename)
    Forms("frmysmxMdf").Controls("PictureBox1").Image = GetImage(dfilename)
这两句,只要有图片,都可以正常下载,如果此图片不存在,就提示:“远程服务器返回错误:(550)文件不可用”

 

但我加了判断后,不管图片有没有存在,都会执行 Else 以后的部分

    If ftp1.FileExists(sfile) Then
        ftp1.Download(sfile, dfilename)
        Forms("frmysmxMdf").Controls("PictureBox1").Image = GetImage(dfilename)
    Else
        messagebox.show("在FTP服務器上找不到圖片 " & sfile,"提示",MessageboxButtons.ok,MessageboxIcon.Warning)
        Forms("frmysmxMdf").Controls("PictureBox1").Image = Nothing
    End If

我反复测试了好多次,就是改为用Try也不能捕捉到错误,请狐爸帮我看看,是不是FileExists有Bug 呀

 


--  作者:狐狸爸爸
--  发布时间:2012/4/11 17:48:00
--  
收到,我抽空检查一下。
--  作者:niu_niu
--  发布时间:2015/1/22 14:17:00
--  

[求助]FTP的FileExists方法无法正常检测到文件是否存在

 

 

-----这个问题有解决吗?怎么2014版本中仍存在该问题呢?


--  作者:Bin
--  发布时间:2015/1/22 14:21:00
--  
未见反应有这问题,是否你路径没搞对?

做个例子发上来我看看

--  作者:有点甜
--  发布时间:2015/1/22 14:34:00
--  
以下是引用niu_niu在2015-1-22 14:17:00的发言:

[求助]FTP的FileExists方法无法正常检测到文件是否存在

 

 

-----这个问题有解决吗?怎么2014版本中仍存在该问题呢?

 

呃,这个不应该的


--  作者:niu_niu
--  发布时间:2015/1/23 10:25:00
--  

[upload=zip,测试ftp.zip]viewFile.asp?ID=60358[/upload]   

  

文件已上传,重复上传,代码中有判断文件是都存在的,可是不提示,仍然能够上传。还请各位老师 帮忙指点,谢谢!

 

上传代码如下:

Dim dlg As New OpenFileDialog
If dlg.ShowDialog = DialogResult.OK Then
    Dim ftp1 As new ftpclient
    Dim file As String
    file=dlg.FileName.SubString(dlg.FileName.LastIndexOf("\\")+1 )
    ftp1.host="183.62.138.253"
    ftp1.Account = "foxtable"
    ftp1.password = "chipsinfo.com.cn"
    ftp1.TimeOut=500000
    ftp1.UTF8=False
   
    If ftp1.DirExists("立项文档\\测试FTP")  Then
        messagebox.Show("目录已存在!")
    Else
        ftp1.MakeDir("立项文档\\测试FTP")
    End If
    Dim fs As String = "立项文档\\测试FTP\\" & file
   
    If ftp1.FileExists(fs) = True Then
        messagebox.Show("该文件已存在,不可重复上传!")
    Else
        ftp1.Upload(dlg.FileName,"立项文档\\测试FTP\\" & file ,True)
       
        Dim r As Row= Tables("表A").Current
        If r IsNot Nothing Then
            If r("第一列")="" Then
                r("第一列")=fs
            Else
                If r("第一列").Contains(fs)=False Then
                    r("第一列") = r("第一列") & Chr(13) & Chr(10) & fs
                End If
            End If
        End If
    End If
   
End If

[此贴子已经被作者于2015-1-23 10:29:02编辑过]

--  作者:有点甜
--  发布时间:2015/1/23 10:43:00
--  

测试了一下,这个是Bug,你变通一下吧。

 

Dim ftp1 As new ftpclient

ftp1.host="183.62.138.253"
ftp1.Account = "foxtable"
ftp1.password = "chipsinfo.com.cn"
ftp1.TimeOut=500000
ftp1.UTF8=False
msgbox(ftp1.GetFileList("/立项文档/").Contains("123.xls"))

ftp1.OpenManager


--  作者:niu_niu
--  发布时间:2015/1/23 15:40:00
--  
问题已解决,谢谢   甜老师!