Avatar billede someidiot Nybegynder
20. november 2005 - 14:51 Der er 4 kommentarer

Download af fil samt kopiering og/eller åbning af fil

Jeg er i gang med at ændre lidt i et program som jeg skrev for laaaaaaaaaang tid siden i VB6, som nu bliver nødt til at blive lavet i VB.NET.

Jeg er stødt på det problem at når jeg har downloadet filen med funktionen DownloadFile(), så bliver den lagt i "C:\Documents and Settings\Mit Navn\Local Settings\Temporary Internet Files\Content.IE5\CJEXOVC5\dilbert200511295140[1].jpg".

Jeg har checket at filen (billedet) rent faktisk ligger der, men når jeg så vil arbejde videre med stien ved enten at kopiere filen til et andet sted, eller ligge den ind i en picturebox, får jeg at vide at der er ulovlige tegn i strengen.
Er det fordi er der mellemrum eller noget andet mærkeligt?

Problemet kunne muligvis rettes hvis jeg bare kunne lægge filen i den rigtige mappe fra start af, men jeg kan ikke huske eller finde nogle en funktion der gør det. Nogle bud?

Håber i kan hjælpe.
Avatar billede joern Nybegynder
20. november 2005 - 15:45 #1
Hej.

I VB5 tillades ikke mellemrum i sti-navne.  Måske det også gælder VB6.
Funktionen DownloadFile kender jeg ikke, er det en fra VB6?  Så kan der vel tilføjes den parameter, at den hentede fil skal dirigeres til en mappe, du selv har fastsat.

Jeg bruger kontrollen MSInet.ocx til at hente filer med FTP-protokollen:

Private Sub kndown_Click()
  Inet1.Protocol = icFTP
  Inet1.URL = "ftp://feliks.dk"
  Inet1.UserName = "single"
  Inet1.Password = "********"    'der skal selvf. stå det rigtige PW
  'Inet1.AccessType = icDirect
  'MsgBox Inet1.RemotePort

  herfil = netsti & "kalender.dat"
  webfil = "kunde000.dat"
  Inet1.RequestTimeout = 60
  'Inet1.Execute , "CD data"
  'Do While Inet1.StillExecuting
      'DoEvents
  'Loop
  Inet1.Execute , "Get " & webfil & " " & netsti & herfil
   
  Do While Inet1.StillExecuting
      DoEvents
  Loop
  Inet1.Execute , "CLOSE"
  MsgBox ("Data er overført.")


End Sub
Avatar billede someidiot Nybegynder
20. november 2005 - 18:01 #2
Faktisk kan jeg se at Downloadfile er en funktion jeg selv har deffineret (jeg sagde at det var lang tid siden jeg havde skrevet det). Her er koden:

    Private Function DownloadFile(ByRef URL As String) As String
        Dim lngRetVal As Integer
        Dim sLocalFilename As String

        sLocalFilename = Space(300)
        lngRetVal = URLDownloadToCacheFile(0, URL, sLocalFilename, Len(sLocalFilename), 0, 0)

        If lngRetVal = 0 Then
            DownloadFile = Trim(sLocalFilename)
        End If
    End Function
End Class

Det ændrer dog ikke på, at jeg får en sti, der af en eller anden ikke er gyldig. Kan det ovenstående bruges til at hente en normal fil på en http server?
Avatar billede someidiot Nybegynder
20. november 2005 - 18:46 #3
Nå, men nu fandt jeg en løsning på problemet selv. Tilsyneladende kan et fileSystemObject gøre det:

fso = New Scripting.FileSystemObject
fso.CopyFile(sLocalFilename, newPath)
Avatar billede joern Nybegynder
20. november 2005 - 19:54 #4
Hej.

FTP-protokollen kan normalt altid bruges på en URL, med mindre der er angivet en beskyttelse mod, at gøre det.  Men det er nødvendigt at kende den mappe en fil ligger i under domænet.  På en FTP-server dirigerer brugernavnet til en bestemt mappe, - som kan være beskyttet af password - eller ikke.
Nu må du så skrive et svar, så du kan få spørgsmålet lukket.
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