Avatar billede chrisf Nybegynder
29. januar 2002 - 16:15 Der er 7 kommentarer og
1 løsning

HJÆLP! Internet Transfer Control

Jeg skal lave en VB-exe, som automatisk (hvert 10. min. e.l.) skal hente nogle forskellige filer fra en folder på en ftp-server og kopiere dem til en folder på f.eks. c-drevet.

Hvordan henter jeg alle filer på en gang ved hjælp af Internet Transfer control uden brug af en form i projektet?

With inet1
  .URL = "ftp://ftpserver.dk/myfolder"
  .username = "myusername"
  .password = "mypassword"
  .Execute , "DIR"
End With

eller hvad ???? Og hvad gør jeg så bagefter???
Avatar billede jennemaan Nybegynder
29. januar 2002 - 16:36 #1
Download af filer:

Inet1.AccessType = icUseDefault
Dim b() As Byte
Dim strURL As String

' Presuming this is still a valid URL.
strURL = "ftp://ftpserver.dk/" & _
"myfolder/myfile.fil"

' Retrieve the file as a byte array.
b() = Inet1.OpenURL(strURL, icByteArray)
 
Open "C:\mineftpfiler\myfile.fil" For Binary Access _
Write As #1
Put #1, , b()
Close #1



Hvis du vil hente Dir listen:

Inet1.Execute "DIR"
'Vent på svar
Do While Inet1.StillExecuting
  DoEvents
Loop

'Læs svaret
vtData = Inet1.GetChunk(1024, icString)
a$ = ""
Do While LenB(vtData) > 0
  a$ = a$ & vtData
  vtData = Inet1.GetChunk(1024, icString)
Loop
GetValues$ = a$

/Jennemaan
Avatar billede chrisf Nybegynder
29. januar 2002 - 17:02 #2
Mit problem er, at jeg ikke kender navnet på de filer som skal downloades eller hvor mange der er!!!

Hvis jeg bruger den nederste - Dir-listen - får jeg så listet alle filer som ligger i den folder?
Avatar billede jennemaan Nybegynder
29. januar 2002 - 17:13 #3
jep

/Jennemaan
Avatar billede chrisf Nybegynder
29. januar 2002 - 17:22 #4
Har lige prøvet det og kan ikke få det til at virke!!! Kan godt hente (GET) en specific fil fra ftp-serveren, men hvis jeg bruger DIR til at liste alle filer i folderen, så er vtData = ""  ?????
Avatar billede jennemaan Nybegynder
29. januar 2002 - 17:30 #5
Prøv følgende i en commandbutton event på en form hvor du har en Inet1 og en textboks: text1

Dim a As String
Dim vtData
Inet1.AccessType = icUseDefault
Inet1.Protocol = icFTP
Inet1.RemoteHost = "ftp.microsoft.com"


Inet1.Execute , "DIR"
'Vent på svar
Do While Inet1.StillExecuting
  DoEvents
Loop

'Læs svaret
vtData = Inet1.GetChunk(1024, icString)
a = ""
Do While LenB(vtData) > 0
  a = a & vtData
  vtData = Inet1.GetChunk(1024, icString)
Loop

Text1.Text = a
Avatar billede chrisf Nybegynder
29. januar 2002 - 18:07 #6
Du har simplethen reddet min dag :-) Det virkede på formen og da jeg tog den samme kode og lagde tilbage i modulet, så virkede det også der :-)

Så du får helt sikkert dine point.

Bare et sidste spørgsmål: variablen a som holder filnavnene er det et array eller hvad ? Hvordan looper jeg igennem det?
Avatar billede jennemaan Nybegynder
29. januar 2002 - 18:12 #7
a er en string.

Hvis du vil have lavet den om til et array bruger du blot

arFiles=Split(a,vbcrlf)

/Jennemaan
Avatar billede chrisf Nybegynder
29. januar 2002 - 18:16 #8
Du er genial :-) :-) mange tak! Her er dine point
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester