Trouver date fichier sur ftp

  • Initiateur de la discussion jeanjean
  • Date de début
J

jeanjean

Guest
Bonjour.

Je vais chercher, par vba, des fichiers sur un serveur par ftp.
Sachant qu'une fois copies sur le disque dur, la date des fichiers devient celle du jour de chargement, je n'ai plus la date d'origine des fichiers.
Je sais comment trouver la date d'un fichier sur disque local (filedatetime(nom fichier)) mais je ne sais pas comment l'appliquer dans le programme de recuperation du fichier sous ftp.

Comment fait on pour obtenir la date d'un fichier qui se trouve sous ftp ?

Merci d'avance.

Jeanjean
 

Shock

XLDnaute Occasionnel
Bonjour à tous,

+1 pour ce pb :

J'ai un fichier de tarifs à mettre à jour via diverses sources (au choix sur feuille), dont un site ftp, or j'ai le meme souci...la fonction filedatetime ne fonctionne pas avec un fichier sur ftp. Quelqu'un aurait-il la solution?

Merci d'avance
 

MichelXld

XLDnaute Barbatruc
rebonjour Shock

ce lien pourra peut etre t'aider

Ce lien n'existe plus

nottament la partie

Private Type WIN32_FIND_DATA
dwFileAttributes As Long
ftCreationTime As FILETIME
ftLastAccessTime As FILETIME
ftLastWriteTime As FILETIME
nFileSizeHigh As Long
nFileSizeLow As Long
dwReserved0 As Long
dwReserved1 As Long
cFileName As String * MAX_PATH
cAlternate As String * 14
End Type



bon week end
MichelXld
 

Shock

XLDnaute Occasionnel
bonjour michel & le forum,
merci pour ce lien, je pense bien que la solution s'y trouve, mais honnêtement, je suis un peu ds le brouillard pour l'appliquer sur mon pb...
ca te gêne si je met ca sur 1 bout de fichier pour mieux y voir?
je fais ca et je l'envoie, si après t'as 5min pour y jeter un oeil...ca m'arrange bcoup!!!
merci d'avance
 

Shock

XLDnaute Occasionnel
...voilà, j'ai fait un bout de fichier...qui ne peut fonctionner, vu que l'adresse ftp est fictive...
Edit : raté, cette fois ca doit etre bon :\\ [file name=majftpforum.zip size=10310]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/majftpforum.zip[/file]

Message édité par: Shock, à: 12/05/2006 09:30
 

Pièces jointes

  • majftpforum.zip
    10.1 KB · Affichages: 39

Shock

XLDnaute Occasionnel
...Bon, bonjour à tous,
personne n'a eu d'idée là-dessus?
De mon côté, j'ai essayé d'appliquer la méthode de Michel (qui a bien l'air d'être la bonne), mais j'ai un souci, que je ne comprends pas tout à fait :
je n'arrive pas à rajouter la biblio wininet.dll à mes références...du coup, ca fonctionne pas, sinon mon code a l'air OK, il me manque que ca (enfin je crois!)
si quelqu'un a une idée?!! :|
merci d'avance!
 

Shock

XLDnaute Occasionnel
Salut!
Bon j'insiste un peu, mais j'ai progressé.
voici le code avec un exemple sur ftp Microsoft, mais ca na fonctionne pas, j'ai un bug ('Objet requis') dans la lg où je veux me connecter au serveur...comprends pas! :'(

Code:
Private Declare Function InternetOpen Lib 'wininet.dll' Alias 'InternetOpenA' _
    (ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As String, _
    ByVal sProxyBypass As String, ByVal lFlags As Long) As Long

Private Declare Function InternetConnect Lib 'wininet.dll' Alias 'InternetConnectA' _
    (ByVal hInternetSession As Long, ByVal sServerName As String, _
    ByVal nServerPort As Integer, ByVal sUsername As String, _
    ByVal sPassword As String, ByVal lService As Long, _
    ByVal lFlags As Long, ByVal lContext As Long) As Long

Private Declare Function FtpGetFile Lib 'wininet.dll' Alias 'FtpGetFileA' _
    (ByVal hFtpSession As Long, ByVal lpszRemoteFile As String, _
    ByVal lpszNewFile As String, ByVal fFailIfExists As Boolean, _
    ByVal dwFlagsAndAttributes As Long, ByVal dwFlags As Long, _
    ByVal dwContext As Long) As Boolean

Private Declare Function FtpFindFirstFile Lib 'wininet.dll' Alias 'FtpFindFirstFileA' _
    (ByVal hFtpSession As Long, ByVal lpszSearchFile As String, _
    lpFindFileData As WIN32_FIND_DATA, ByVal dwFlags As Long, _
    ByVal dwContent As Long) As Long
    
Private Const MAX_PATH As Long = 260

Private Type FILETIME
        dwLowDateTime As Long
        dwHighDateTime As Long
End Type
    
Private Type WIN32_FIND_DATA
dwFileAttributes As Long
ftCreationTime As FILETIME
ftLastAccessTime As FILETIME
ftLastWriteTime As FILETIME
nFileSizeHigh As Long
nFileSizeLow As Long
dwReserved0 As Long
dwReserved1 As Long
cFileName As String * MAX_PATH
cAlternate As String * 14
End Type

Private Declare Function InternetCloseHandle Lib 'wininet.dll' (ByVal hInet As Long) As Integer


Sub ftp()

Dim pData As WIN32_FIND_DATA

lngINet = InternetOpen(“MyFTPControl”, 1, vbNullString, vbNullString, 0)

        'dl essai microsoft
    lngINetConn = InternetConnect(lngINet, “ftp.microsoft.com”, 0, 'anonymous', 'wally@wallyworld.com', 0, 0, 0)

lngHINet = FtpFindFirstFile(lngINetConn, 'dirmap.txt', pData, 0, 0)


InternetCloseHandle lngINetConn
InternetCloseHandle lngINet

End Sub

merci de votre aide!
 

Discussions similaires

Statistiques des forums

Discussions
312 595
Messages
2 090 099
Membres
104 375
dernier inscrit
Willycampina