OVH Cloud OVH Cloud

Ouverture de session Internet

29 réponses
Avatar
neirda
Bonjour

Je suis en train de r=E9aliser un client FTP pour mon BTS.

Je souhaiterai ouvrir une session FTP et permettre l'envoi et la
r=E9ception de fichiers.

J'ai donc t=E9l=E9charg=E9 de la doc et m=EAme un exemple de l'utilisation
de wininet sur le site de msdn.

Mais cela reste difficil =E0 comprendre.

C'est pr=E9cisement sur cette page que j'ai trouv=E9 l'exemple:

http://support.microsoft.com/default.aspx?scid=3Dkb;en-us;175179

Qui pourrait m'aider =E0 comprendre le code?

Ce que j'ai compris pour l'instant c'est qu'il faille d'abord ouvrir
une connection internet (avec internetOpen ) mais est ce indispensable?

Ensuite il faut se connecter au serveur. Mais moi ca ne fonctionne pas
dans mon code.

9 réponses

1 2 3
Avatar
Alfred Wallace
bonjour,

ci-dessous proc EnumFiles qui remplit une listview nommée LstPgm
Il faut au préalable déclarer les structures des API
(WIN32_FIND_DATA,FILETIMEM,SYSTEMTIMEM ....) dans un module global ou le
module de la form

Label1 = "Site Ftp: Enumérer les programmes "
EnumFiles hConnection
Label1 = "Site ftp: Fin d'énumération "
DoEvents

Public Sub EnumFiles(hConnection As Long)

Dim itmx As ListItem
LstPgm.SmallIcons = ImageList1
LstPgm.Icons = ImageList1

Label1 = "Site ftp: Enumération"
Dim pData As WIN32_FIND_DATAM, hFind As Long, lRet As Long


Dim TailleTrouve As Long
Dim DateTrouve As String
Dim VersionTrouve As String
Dim FT As FILETIMEM
Dim ST As SYSTEMTIMEM

pData.cFileName = String(MAX_PATH, 0)

hFind = FtpFindFirstFile(hConnection, "*.*", pData, 0, 0)

If hFind = 0 Then
LbConn = "Site ftp: Pas de mises à jour en attente"
Exit Sub
End If

FileTimeToLocalFileTime pData.ftLastWriteTime, FT
FileTimeToSystemTime FT, ST
DateTrouve = Format(ST.wDay, "00") & "/" & Format(ST.wMonth, "00") & "/"
& Format(ST.wYear, "0000") & " " & Format(ST.wHour, "00") & ":" &
Format(ST.wMinute, "00") & ":" & Format(ST.wSecond, "00")
TailleTrouve = (pData.nFileSizeHigh * MAXDWORD) + pData.nFileSizeLow

sTemp = Left(pData.cFileName, InStr(1, pData.cFileName, String(1, 0),
vbBinaryCompare) - 1)

NumIcon = 3
Set itmx = LstPgm.ListItems.Add(, , "", NumIcon, NumIcon)
itmx.SubItems(1) = LCase(sTemp)
itmx.SubItems(2) = DateTrouve
itmx.SubItems(3) = Format(TailleTrouve, "#####") & " Ko"
TailleTrouve = (pData.nFileSizeHigh * MAXDWORD) + pData.nFileSizeLow

Do
pData.cFileName = String(MAX_PATH, 0)

lRet = InternetFindNextFile(hFind, pData)

If lRet = 0 Then Exit Do

FileTimeToLocalFileTime pData.ftLastWriteTime, FT
FileTimeToSystemTime FT, ST
DateTrouve = Format(ST.wDay, "00") & "/" & Format(ST.wMonth, "00") &
"/" & Format(ST.wYear, "0000") & " " & Format(ST.wHour, "00") & ":" &
Format(ST.wMinute, "00") & ":" & Format(ST.wSecond, "00")
TailleTrouve = (pData.nFileSizeHigh * MAXDWORD) + pData.nFileSizeLow

sTemp = Left(pData.cFileName, InStr(1, pData.cFileName, String(1,
0), vbBinaryCompare) - 1)
NumIcon = 3
Set itmx = LstPgm.ListItems.Add(, , "", NumIcon, NumIcon)
itmx.SubItems(1) = LCase(sTemp)
itmx.SubItems(2) = DateTrouve
itmx.SubItems(3) = Format(TailleTrouve, "#####") & " Ko"
TailleTrouve = (pData.nFileSizeHigh * MAXDWORD) + pData.nFileSizeLow
Loop

lRet = InternetCloseHandle(hFind)

End Sub

Luc

"neirda" a écrit dans le message de news:

Me revoila !!

En ce qui concerne la connection au serveur c'est OK.

hconnection est bien différent de 0.

Ce que je ne comprend pas, c'est comment lister le contenu du serveur
dans un DirListBox ou autre...

Lorsque j'utilise un ftpgetcurrentdirectory j'obtient logiquement "/"
mais après? comment afficher ce que contient ce repertoire?
Avatar
neirda
rebonjour,

Encore une question :)

Pourquoi est ce que lorsque j'utilise FTPfindfirstfile etc... j'obtient
bien toute ma liste des fichiers et dossiers sur le serveur mais j'ai
toujours en plus un dossier ".." et un fichier "." ??

Quelqu'un pour éclairer ma lanterne =)
Avatar
Jean-Marc
>"neirda" a écrit dans le message de
news:
rebonjour,

Encore une question :)

Pourquoi est ce que lorsque j'utilise FTPfindfirstfile etc... j'obtient
bien toute ma liste des fichiers et dossiers sur le serveur mais j'ai
toujours en plus un dossier ".." et un fichier "." ??

Quelqu'un pour éclairer ma lanterne =)





Hello,

C'est exacteùment la même chose si tu fais un bête Dir dans
une console Dos.

Exemple 1:

C:JMtest>dir
Le volume dans le lecteur C n'a pas de nom.
Le numéro de série du volume est 0000-2C22

Répertoire de C:JMtest

28/11/2005 20:37 <REP> .
28/11/2005 20:37 <REP> ..
28/11/2005 20:37 5 titi.txt
28/11/2005 20:37 6 toto.txt
2 fichier(s) 11 octets
2 Rép(s) 5.282.590.720 octets libres

C:JMtest>

Sur à peu près tous les OS, on trouve dans chaque répertoire
(sauf le répertoire racine) 2 répertoires spéciaux:
".", qui représente le répertoire courant
"..", qui représente le répertoire parent

Ainsi, si tu fais:
"Chdir .", tu restes ou tu es
"Chdir ..", tu remontes d'un niveau.

Exemple 2:

C:JMtest>cd ..

C:JM>

Voila ton explication :-)

--
Jean-marc
Tester mon serveur (VB6) => http://myjmnhome.dyndns.org
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ;
Avatar
neirda
Ok merci beaucoup!
Avatar
neirda
Comment esquiver les "." et ".." qui resorte dans le listing du serveur
FTP? J'ai esssayé de faire:

If pData.cFilename <> "." then.... mais il le trouve tjrs diférent car
en fait ce n'est pas "." mais ". avec plein d'espaces ici"

Quelqu'un a une astuce pour moi?
Avatar
Jacques93
Bonjour neirda,
neirda a écrit :
Comment esquiver les "." et ".." qui resorte dans le listing du serveur
FTP? J'ai esssayé de faire:

If pData.cFilename <> "." then.... mais il le trouve tjrs diférent car
en fait ce n'est pas "." mais ". avec plein d'espaces ici"

Quelqu'un a une astuce pour moi?




pData.cFilename renvoie une chaine de caractère dont la fin est indiquée
par un zéro binaire (format standard des chaines en C/C++) :

If Left(pData.cFileName, InStr(pData.cFileName, Chr$(0)) - 1) <> "."

--
Cordialement,

Jacques.
Avatar
Neuf news
Slt

essai en elevant les espaces, qui sait

neirda a écrit dans le message :

Comment esquiver les "." et ".." qui resorte dans le listing du serveur
FTP? J'ai esssayé de faire:

If pData.cFilename <> "." then.... mais il le trouve tjrs diférent car
en fait ce n'est pas "." mais ". avec plein d'espaces ici"

Quelqu'un a une astuce pour moi?
Avatar
Jean-Marc
"Neuf news" a écrit dans le message de
news:dpllvd$enf$
Slt

essai en elevant les espaces, qui sait

neirda a écrit dans le message :

Comment esquiver les "." et ".." qui resorte dans le listing du


serveur
FTP? J'ai esssayé de faire:

If pData.cFilename <> "." then.... mais il le trouve tjrs diférent car
en fait ce n'est pas "." mais ". avec plein d'espaces ici"

Quelqu'un a une astuce pour moi?



Hello,

je ne sais pas si c'est une astuce, mais tu peux faire des choses comme:

dim szTrimedFileName as string

szTrimedFileName = Trim$(pData.cFilename)

If szTrimedFileName<>"." and _
szTrimedFileName<>".." Then
' c'est un fichier normal
Else
' c'est . ou ..
Endif


--
Jean-marc
Tester mon serveur (VB6) => http://myjmnhome.dyndns.org
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ;
Avatar
Dave
fait plutot
pData.cFilename=replace(pData.cFilename,".","")
je crois c'est cela

"Jean-Marc" a écrit dans le message de news:
43beaf84$0$13557$
"Neuf news" a écrit dans le message de
news:dpllvd$enf$
> Slt
>
> essai en elevant les espaces, qui sait
>
> neirda a écrit dans le message :
>
> Comment esquiver les "." et ".." qui resorte dans le listing du
serveur
> FTP? J'ai esssayé de faire:
>
> If pData.cFilename <> "." then.... mais il le trouve tjrs diférent car
> en fait ce n'est pas "." mais ". avec plein d'espaces ici"
>
> Quelqu'un a une astuce pour moi?

Hello,

je ne sais pas si c'est une astuce, mais tu peux faire des choses comme:

dim szTrimedFileName as string

szTrimedFileName = Trim$(pData.cFilename)

If szTrimedFileName<>"." and _
szTrimedFileName<>".." Then
' c'est un fichier normal
Else
' c'est . ou ..
Endif


--
Jean-marc
Tester mon serveur (VB6) => http://myjmnhome.dyndns.org
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ;



1 2 3