OVH Cloud OVH Cloud

probleme avec FtpFindFirstFile

2 réponses
Avatar
AURELIE B.
Bonjour =E0 tous!!!
J'ai un probleme avec mon application VB, j'essaye=20
d'obtenir la date de creation d'un fichier(pos=E9 sur un=20
serveur FTP) grace =E0 "FtpFindFirstFile" et =E0 sa=20
structure "WIN32_FIND_DATA"
au travers de "ftCreationTime" mais le probleme est que je=20
recupere toujours 0 ce qui voudrais dire que le systeme ou=20
se trouve le fichier ne supporte pas les types FILETIME.=20
Pourtant le serveur est sous Windows 2000 se qui est=20
suffisant d'apres MSDN...

Donc voila si quelqu'un a une id=E9e de la raison de ce=20
probleme ou de la facon de recuperer la date de creation=20
d'un fichier sur un serveur FTP...
MERCI d'avance.... voila mon code au cas ou...

Dim ok As Boolean
Dim ok2 As Boolean
Dim ok3 As Boolean
Dim unString As String
Dim WIN32_FIND_DATA_X As WIN32_FIND_DATA
Dim a As FILETIME
Dim b As FILETIME
Dim c As SYSTEMTIME
=20
bret =3D FtpSetCurrentDirectory
(hConnection, "/Saga") 'repertoire virtuel Saga
If bret =3D False Then
DoDisconnect
ErrorOut Err.LastDllError, "rcd"
End If
=20
'GET
If bActiveSession Then
=20
nomFichier =3D "g_abonne.exe"
=20
ok =3D FtpFindFirstFile(hConnection, nomFichier,=20
WIN32_FIND_DATA_X, INTERNET_FLAG_RELOAD, 0)
a.dwHighDateTime =3D=20
WIN32_FIND_DATA_X.ftCreationTime.dwHighDateTime
ok2 =3D FileTimeToLocalFileTime(a, b)
ok3 =3D FileTimeToSystemTime(b, c)
MsgBox (c.wDay)

2 réponses

Avatar
Christine HENNEQUIN
Bonjour,

Je pense qu'il s'agit ici d'optimisation propres au protocole FTP

En effet, je sais de mémoie que les serveurs FTP, ne renvoit pas l'année si
cette dernière est l'année en cours.
Il est possible qu'ils renvoient 0 si c'est la date du jour (à vérifier !)

Autre piste :
Sous Windows 2000, il faut se méfier d'une option qui pemet de lister les
fichiers comme des répertoires UNIX. Cette option activée, Win200 te renvoit
comme année, l'année -1.
Verifie de ce coté !

"AURELIE B." a écrit dans le message de news:
022601c341fc$faea29c0$
Bonjour à tous!!!
J'ai un probleme avec mon application VB, j'essaye
d'obtenir la date de creation d'un fichier(posé sur un
serveur FTP) grace à "FtpFindFirstFile" et à sa
structure "WIN32_FIND_DATA"
au travers de "ftCreationTime" mais le probleme est que je
recupere toujours 0 ce qui voudrais dire que le systeme ou
se trouve le fichier ne supporte pas les types FILETIME.
Pourtant le serveur est sous Windows 2000 se qui est
suffisant d'apres MSDN...

Donc voila si quelqu'un a une idée de la raison de ce
probleme ou de la facon de recuperer la date de creation
d'un fichier sur un serveur FTP...
MERCI d'avance.... voila mon code au cas ou...

Dim ok As Boolean
Dim ok2 As Boolean
Dim ok3 As Boolean
Dim unString As String
Dim WIN32_FIND_DATA_X As WIN32_FIND_DATA
Dim a As FILETIME
Dim b As FILETIME
Dim c As SYSTEMTIME

bret = FtpSetCurrentDirectory
(hConnection, "/Saga") 'repertoire virtuel Saga
If bret = False Then
DoDisconnect
ErrorOut Err.LastDllError, "rcd"
End If

'GET
If bActiveSession Then

nomFichier = "g_abonne.exe"

ok = FtpFindFirstFile(hConnection, nomFichier,
WIN32_FIND_DATA_X, INTERNET_FLAG_RELOAD, 0)
a.dwHighDateTime WIN32_FIND_DATA_X.ftCreationTime.dwHighDateTime
ok2 = FileTimeToLocalFileTime(a, b)
ok3 = FileTimeToSystemTime(b, c)
MsgBox (c.wDay)
Avatar
AURELIE B
Merci beaucoup d'avoir pris le temps de me repondre...
Je vais essayer d'appliquer tes conseils...
encore une fois merci