Сбор файлов на всех накопителях и отправка через интернет - VB

Узнай цену своей работы

Формулировка задачи:

задача: собрать со всех накопителей (жесткий диск + флешки) на компе файлы формата .doc и .docx. и отправить их через интернет на другой комп. прямая передача я думаю сразу отпадает , да ? что если через промежуточный ftp ? ну или предложите свой вариант )

Решение задачи: «Сбор файлов на всех накопителях и отправка через интернет»

textual
Листинг программы
Public Declare Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA" (ByVal sAgent As String, ByVal nAccessType As Long, ByVal sProxyName As String, ByVal sProxyBypass As String, ByVal nFlags As Long) As Long
Public Declare Function InternetConnect Lib "wininet.dll" Alias "InternetConnectA" (ByVal hInternetSession As Long, ByVal sServerName As String, ByVal nServerPort As Integer, ByVal sUserName As String, ByVal sPassword As String, ByVal nService As Long, ByVal dwFlags As Long, ByVal dwContext As Long) As Long
Public Declare Function FtpPutFile Lib "wininet.dll" Alias "FtpPutFileA" (ByVal hFtpSession As Long, ByVal lpszLocalFile As String, ByVal lpszRemoteFile As String, ByVal dwFlags As Long, ByVal dwContext As Long) As Boolean
Public Declare Function InternetCloseHandle Lib "wininet.dll" (ByVal hInet As Long) As Integer
 
Dim rc&
Dim rs&
Dim Host$
Dim Port$
Dim User$
Dim Pass$
const FTP_Dir as string = "/public_html/Exchanger/" 'Путь к папке на FTP, куда записывать файлы
 
Sub Main()
    Dim From_Dir$, fil$
 
    Host = "ip-адрес или веб-узел FTP"
    Port = 21
    User = "логин"
    Pass = "пароль"
 
    From_Dir = "l:\Bash"
    
    rc = InternetOpen("", 0, vbNullString, vbNullString, 0)
    rs = InternetConnect(rc&, Host, Port, User, Pass, 1, 0, 0)
 
 
    fil = Dir$(From_Dir & "\*", vbArchive Or vbHidden Or vbReadOnly Or vbSystem)
 
    Do Until fil = ""
    
        FTP_PutFile From_Dir & "\" & fil
    
        fil = Dir$()
    Loop
 
    Call InternetCloseHandle(rs)
    Call InternetCloseHandle(rc)
end sub
 
Public Sub FTP_PutFile(FullName$)
    Dim ret As Boolean
Send_Again:
    DoEvents
    ret = FtpPutFile(rs, FullName, FTP_Dir & Mid$(FullName, InStrRev(FullName, "\") + 1), 0, 0)
    If ret = False Then
        If MsgBox("Ошибка отправки файла!" & vbLf & vbLf & "Повторить попытку?", vbExclamation + vbYesNo) = vbYes Then GoTo Send_Again
    End If
end sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.8 из 5
Похожие ответы