以文本方式查看主题

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

--  作者:douglas738888
--  发布时间:2016/10/15 14:15:00
--  FTP下载的问题

请教蓝老师,下面代码下载失败  ,在窗口的AFTERLOAD 已设置代码可以打开文件管理器,也可另存,现在想实现通过复选框的勾选批量下载

 

列“归档文件”的文件到指定文件夹。

 

For Each r As Row In Tables("档案管理_Table3").GetCheckedRows
    If r("归档文件") IsNot Nothing Then
    Dim ftp1 As new ftpclient
        ftp1.host="\\\\KMCTZD\\kmctzd$\\档案存储"
        ftp1.Account =  "Administrator"
        ftp1.password =  ""
        If ftp1.Download("\\\\KMCTZD\\kmctzd$\\档案存储","C:\\Users\\WC\\Desktop\\接收下载") = True Then
           Messagebox.show("下载完成!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
        Else
           Messagebox.show("下载失败!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
        End If
    End If
Next

[此贴子已经被作者于2016/10/15 14:25:04编辑过]

--  作者:有点蓝
--  发布时间:2016/10/15 14:37:00
--  
这个似乎和ftp没有什么关系吧

Dim spath As String = "\\\\KMCTZD\\kmctzd$\\档案存储\\"
Dim dpath As String = "C:\\Users\\WC\\Desktop\\接收下载\\"
For Each r As Row In Tables("档案管理_Table3").GetCheckedRows
    If r("归档文件") IsNot Nothing AndAlso FileSys.FileExists(spath & r("归档文件")) Then
        FileSys.CopyFile(spath & r("归档文件"),dpath  & r("归档文件"),True)
        If FileSys.FileExists(dpath & r("归档文件"))  Then
            Messagebox.show("下载完成!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
        Else
            Messagebox.show("下载失败!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
        End If
    Next
Next

--  作者:douglas738888
--  发布时间:2016/10/15 15:27:00
--  

蓝老师,谢谢您指导的代码,另外,我看了帮助没有找到答案,比如下载10多个文件,要不断点击 Messagebox.show的窗口的下载成功,怎样修改代码,如果全部文件下载

 

成功,只要点击一次 Messagebox.show窗口就行,如果有个别文件下载不成功进行提示。谢谢


--  作者:有点蓝
--  发布时间:2016/10/15 15:41:00
--  
Dim spath As String = "\\\\KMCTZD\\kmctzd$\\档案存储\\"
Dim dpath As String = "C:\\Users\\WC\\Desktop\\接收下载\\"
Dim errfiles As String
For Each r As Row In Tables("档案管理_Table3").GetCheckedRows
    If r("归档文件") IsNot Nothing AndAlso FileSys.FileExists(spath & r("归档文件")) Then
        FileSys.CopyFile(spath & r("归档文件"),dpath  & r("归档文件"),True)
        If FileSys.FileExists(dpath & r("归档文件")) = False Then
            errfiles &= dpath & r("归档文件") & vbcrlf
        End If
    Next
Next

If errfiles > "" Then
    Messagebox.show("以下下载失败!" & vbcrlf & errfiles  ,"提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
End If

--  作者:douglas738888
--  发布时间:2016/10/15 16:46:00
--  

老师,您指导的代码如果改成“归档文件”=True , ...  能正常提示下载成功和下载成功的文件名称了。

 

您指导的代码,但是不会提示下载不成功和下载不成功的文件名:

 

例子: “归档文件”没有字符 或者 “归档文件”有字符,但服务器上没有该文件,指定接收文件的文件夹到是没有文件了,

 

但是Messagebox.show("以下下载失败...)不会提示,什么也不显示   不知是什么原因?

 

 


--  作者:有点蓝
--  发布时间:2016/10/15 16:58:00
--  
“归档文件”=True?归档文件不文件名称吗

那就上例子测试

--  作者:douglas738888
--  发布时间:2016/10/15 17:49:00
--  

请教老师帮忙看看,第一行的文件是能下载成功有提示的,第二行的虽然有文件名,但服务器上已删除文件,但勾选复选框下载不会提示,如果表中没有文件,也不会提示下载不成功

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:下载测试.zip

 

另外,请教老师,如果现在要把 ACCESS的数据库替换为SQL SERVER,是否先要下载SQL SERVER安装到本机上进行定向

[此贴子已经被作者于2016/10/15 18:17:32编辑过]

--  作者:狐狸爸爸
--  发布时间:2016/10/16 6:47:00
--  
Dim spath As String = "\\\\KMCTZD\\kmctzd$\\档案存储\\"
Dim dpath As String = "C:\\Users\\WC\\Desktop\\接收下载\\"
Dim errfiles As String
Dim scsFiles As String
For Each r As Row In Tables("档案管理_Table3").GetCheckedRows
    If r.Isnull("归档文件") = False  Then
        If  FileSys.FileExists(spath & r("归档文件")) Then
            FileSys.CopyFile(spath & r("归档文件"),dpath  & r("归档文件"),True)
            If FileSys.FileExists(dpath & r("归档文件")) = True Then
                scsFiles = scsFiles & r("归档文件") & vbcrlf
            Else
                errfiles = errfiles & r("归档文件") & vbcrlf
            End If
        Else
            errfiles = errfiles & r("归档文件") & vbcrlf
        End If
    End If
Next
If scsFiles > "" Then
    Messagebox.show("以下文件下载成功!" & vbcrlf & scsFiles ,"提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
End If
If errfiles > "" Then
    Messagebox.show("以下下载失败!" & vbcrlf & errfiles  ,"提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
End If

--  作者:douglas738888
--  发布时间:2016/10/17 11:03:00
--  

老师,现在能实现正常下载的提示了,有个问题,如果是多文件的就显示下载失败不能下载,只能单个文件下载;如果是图片列也存在这样的问题,怎样写集合

 

Dim spath As String = "\\\\KMCTZD\\kmctzd$\\档案存储\\"
Dim dpath As String = "C:\\Users\\WC\\Desktop\\接收下载\\"
Dim errfiles As String
Dim scsFiles As String
For Each r As Row In Tables("下载_Table1").GetCheckedRows
    If r.Isnull("归档文件") = False  Then
        If  FileSys.FileExists(spath & r("归档文件")) Then
            FileSys.CopyFile(spath & r("归档文件"),dpath  & r("归档文件"),True)
            If FileSys.FileExists(dpath & r("归档文件")) = True Then
                scsFiles = scsFiles & r("归档文件") & vbcrlf
            Else
                errfiles = errfiles & r("归档文件") & vbcrlf
            End If
        Else
            errfiles = errfiles & r("归档文件") & vbcrlf
        End If
    End If
Next
If scsFiles > "" Then
    Messagebox.show("以下文件下载成功!" & vbcrlf & scsFiles ,"提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
End If
If errfiles > "" Then
    Messagebox.show("以下下载失败!" & vbcrlf & errfiles  ,"提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
End If

[此贴子已经被作者于2016/10/17 11:24:40编辑过]

--  作者:有点蓝
--  发布时间:2016/10/17 11:31:00
--  
Dim spath As String = "\\\\KMCTZD\\kmctzd$\\档案存储\\"
Dim dpath As String = "f:\\" \'"C:\\Users\\WC\\Desktop\\接收下载\\"
Dim errfiles As String
Dim scsFiles As String
For Each r As Row In Tables("档案管理_Table3").GetCheckedRows
    If r.Isnull("归档文件") = False  Then
        For Each file As String In r.DataRow("归档文件").Lines
            If  FileSys.FileExists(spath & file) Then
                FileSys.CopyFile(spath & file,dpath  & file,True)
                If FileSys.FileExists(dpath & file) = True Then
                    scsFiles = scsFiles & file & vbcrlf
                Else
                    errfiles = errfiles & file & vbcrlf
                End If
            Else
                errfiles = errfiles & file & vbcrlf
            End If
        Next
    End If
Next
If scsFiles > "" Then
    Messagebox.show("以下文件下载成功!" & vbcrlf & scsFiles ,"提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
End If
If errfiles > "" Then
    Messagebox.show("以下下载失败!" & vbcrlf & errfiles  ,"提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
End If