Foxtable(狐表)用户栏目专家坐堂 → [求助]FTP的FileExists方法无法正常检测到文件是否存在


  共有7821人关注过本帖树形打印复制链接

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

美女呀,离线,留言给我吧!
cqmeiyan
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:104 积分:939 威望:0 精华:0 注册:2011/6/8 9:13:00
[求助]FTP的FileExists方法无法正常检测到文件是否存在  发帖心情 Post By:2012/4/11 16:06:00 [只看该作者]

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 呀

 


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/4/11 17:48:00 [只看该作者]

收到,我抽空检查一下。

 回到顶部
帅哥哟,离线,有人找我吗?
niu_niu
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:120 积分:1624 威望:0 精华:0 注册:2008/10/6 15:10:00
  发帖心情 Post By:2015/1/22 14:17:00 [只看该作者]

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

 

 

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


 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/1/22 14:21:00 [只看该作者]

未见反应有这问题,是否你路径没搞对?

做个例子发上来我看看

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/1/22 14:34:00 [只看该作者]

以下是引用niu_niu在2015-1-22 14:17:00的发言:

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

 

 

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

 

呃,这个不应该的


 回到顶部
帅哥哟,离线,有人找我吗?
niu_niu
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:120 积分:1624 威望:0 精华:0 注册:2008/10/6 15:10:00
  发帖心情 Post By: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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By: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
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:120 积分:1624 威望:0 精华:0 注册:2008/10/6 15:10:00
  发帖心情 Post By:2015/1/23 15:40:00 [只看该作者]

问题已解决,谢谢   甜老师!

 回到顶部