[win98 api] FtpGetFile

Pagina: 1
Acties:

  • Eastern
  • Registratie: Augustus 2000
  • Laatst online: 24-06 22:21
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Private Declare Function FtpGetFile Lib wininet.dll Alias FtpGetFileA (ByVal hConnect 
As Long, ByVal lpszRemoteFile As String, ByVal lpszNewFile As String, ByVal 
fFailIfExists As Long, ByVal dwFlagsAndAttributes As Long, ByVal dwFlags As Long, 
ByRef dwContext As Long) As Boolean

Const INTERNET_FLAG_RELOAD = &H80000000
Const INTERNET_FLAG_TRANSFER_BINARY = 2

Public Function GetFile(RemoteFile As String, LocalFile As String) As Boolean
' doel:
'
' Een bestand downloaden
If hConnection <> 0 Then
    If FtpGetFile(hConnection, RemoteFile, LocalFile, False, 0, 
INTERNET_FLAG_RELOAD + INTERNET_FLAG_TRANSFER_BINARY, 0) = True Then
        GetFile = False
    Else
        GetFile = True
    End If
End If

End Function


Deze functie werkt onder Windows 2000 naar behoren, onder Windows 98 wil het echter niet lukken:

pas op de ftp server het bestand aan, windows 2000/xp haalt hem netjes van de ftp server. Windows 98 haalt hem uit de cache, en heeft dus een oude versie. Dit moet gefixed worden, anders werkt het programma niet. Alleen een restart werkt om toch de juiste op te halen.

Iemand een oplossing voor dit zeer vage probleem, of doe ik het verkeerd?


.modbreak: geen nood, ik heb even je post geedit omdat dingen als < en > niet goed worden geconverteerd door een huidige bug in react. Aangezien ik html rechten heb gaat het bij mij dus wel goed

[ Voor 21% gewijzigd door .oisyn op 27-10-2003 19:46 . Reden: layout ]


  • SWfreak
  • Registratie: Juni 2001
  • Niet online
Heb je dit probleem ook als je INTERNET_FLAG_RESYNCHRONIZE gebruikt ipv INTERNET_FLAG_RELOAD? Ik zoek maar naar ideeen hoor. Ander idee is dat misschien GetLastError iets oplevert?

[ Voor 33% gewijzigd door SWfreak op 27-10-2003 16:05 ]


  • Eastern
  • Registratie: Augustus 2000
  • Laatst online: 24-06 22:21
Get lasterror levert niks op.

Internet_flag_resynchronize werkt ook niet.


Probleem, na ongeveer 3 dagen nu wel opgelost:


code:
1
2
3
4
5
INTERNET_FLAG_RELOAD + INTERNET_FLAG_TRANSFER_BINARY

moet zijn:

INTERNET_FLAG_RELOAD Or INTERNET_FLAG_TRANSFER_BINARY

  • SWfreak
  • Registratie: Juni 2001
  • Niet online
Ik had dat ook gezien maar gokte dat het niet uit zou maken |:(

  • Eastern
  • Registratie: Augustus 2000
  • Laatst online: 24-06 22:21
SWfreak schreef op 27 October 2003 @ 16:35:
Ik had dat ook gezien maar gokte dat het niet uit zou maken |:(
Op w2k maakt dat dus ook niet uit. Het is trouwens gewoon vreemd dat ftp bestanden door w98 gecached worden naar mijn idee, zeker als niet eens gekeken wordt of er een nieuwere aanwezig is.

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 12:02

.oisyn

Moderator Devschuur®

Demotivational Speaker

SWfreak schreef op 27 October 2003 @ 16:35:
Ik had dat ook gezien maar gokte dat het niet uit zou maken |:(
Bij enkele flags maakt dat ook niet uit, maar als een constante een combinatie is van meerdere flags, waarbij je dus eigenlijk flags dubbel toevoegt als je ze ook nog eens apart gaat specificeren, dan gaat het fout

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • SWfreak
  • Registratie: Juni 2001
  • Niet online
.oisyn schreef op 27 October 2003 @ 19:48:
[...]


Bij enkele flags maakt dat ook niet uit, maar als een constante een combinatie is van meerdere flags, waarbij je dus eigenlijk flags dubbel toevoegt als je ze ook nog eens apart gaat specificeren, dan gaat het fout
Als je flags dubbel gaat toevoegen, gaat het inderdaad mis. Maar ik had dat al nagezocht, en volgens mijn VS.NET was de ene 0x80000000 en de andere 0x00000002 (ik kan er een paar nullen naast zitten). En dan maakt het weer niet uit :?
Pagina: 1