Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

VB.NET version de fichier distant par FTP

4 réponses
Avatar
Julius
Bonjour,

je viens à l'instant de poster ma question dans la partie VB tout court...
je n'avais pas vu cette section ! Aussi, je repose ma question dans la partie
appropriée...:


je réalise une application sous visual studio 2005, en VB.NET.
Cette application comporte un petit client FTP, qui va me servir, entre
autres, à mettre à jour mon application.
Pour cette partie, j'ai réalisé le client FTP avec les API FtpFindFirstFile,
FtpSetCurrentDirectory. Cela fonctionne très bien, et je parviens à faire du
download correctement.

Pour aller un peu plus loin, j'aimerai comparer la version des fichiers (dll
et exe) avant de commencer le download.
Pour ce faire, j'utilise le code suivant:

Dim fso
fso = CreateObject("Scripting.FileSystemObject")
temp = fso.GetFileVersion("c:\ma_dll.dll")

ce code fonctionne très bien en local, mais je ne parviens pas à obtenir la
version de la dll distante, avant download...

l'API :

Private Declare Function FtpFindFirstFile Lib "wininet" Alias
"FtpFindFirstFileA" (ByVal hFtpSession As Integer, ByVal lpszSearchFile As
String, ByRef lpFindFileData As WIN32_FIND_DATA, ByVal dwFlags As Integer,
ByVal dwContext As Integer) As Integer

possède 5 arguments, et le 3e: "lpFindFileData" est une structure qui
récupère des infos sur le fichier à downloader (taille, ...) mais pas la
version...


Avez vous une idée ?

merci !

Julien

4 réponses

Avatar
Jérémy Jeanson
Bonjour Julius,

Vu que tu dispose de .net 2, peut être serrait il préférable d'utiliser
les possibilités du framework.

Sur la MSDN il y a un page dédiée aux classes FTP de .net 2:
http://msdn.microsoft.com/en-us/library/ms229718.aspx

Il y a de fortes chances que tu y trouve ton bonheur.
--
Jérémy JEANSON
MCP
http://jeremy.blogdns.net
Avatar
Julius
Merci pour la réponse rapide !!
J'ai jeté un oeil sur ces classes (system.Net, FtpWebRequest et
FtpWebResponse). Pas la moindre trace d'une propriété pour obtenir une
version d'exe ou de dll...
des GetFileSize en veux tu en voilà!! Mais la taille, les dates (création,
etc...) semblent être les seules propriétés gérées par les objets d'info sur
les fichiers...


"Jérémy Jeanson" a écrit :

Bonjour Julius,

Vu que tu dispose de .net 2, peut être serrait il préférable d'utiliser
les possibilités du framework.

Sur la MSDN il y a un page dédiée aux classes FTP de .net 2:
http://msdn.microsoft.com/en-us/library/ms229718.aspx

Il y a de fortes chances que tu y trouve ton bonheur.
--
Jérémy JEANSON
MCP
http://jeremy.blogdns.net



Avatar
Patrice
Sauf erreur c'est généralement la date/taille qui sert à déterminer
empiriquement si la version est la même. Eventuellement cette information
pourrait éventuellement être stockée à part...

Le problème est que l'information de version étant dans le fichier, il faut
lire le fichier pour avoir cette info ce qui donc ne sert plus à rien (plus
le fait que c'est qq chose de particulier à tel ou tel format de fichier et
non pas de général et encore moins entre des OS différents).

Voir par exemple :
http://www.codeproject.com/KB/cs/FtpPublisher.aspx (en anglais)

"Every file entry in the configuration contains a path and a DateTime stamp
for when that file was uploaded last. It decides to upload if the file has
been modified since it last wrote the stamp. I chose this method instead of
getting the DateTime from the FTP because I wanted these local files to be
the master copies." donc stockage du chemin et de la date /heure du dernier
téléchargement qui sert de base de comparaison pour savoir si le fichier
sera à telécharger la prochaine fois...

--
Patrice

"Julius" a écrit dans le message de
groupe de discussion :
Merci pour la réponse rapide !!
J'ai jeté un oeil sur ces classes (system.Net, FtpWebRequest et
FtpWebResponse). Pas la moindre trace d'une propriété pour obtenir une
version d'exe ou de dll...
des GetFileSize en veux tu en voilà!! Mais la taille, les dates (création,
etc...) semblent être les seules propriétés gérées par les objets d'info
sur
les fichiers...


"Jérémy Jeanson" a écrit :

Bonjour Julius,

Vu que tu dispose de .net 2, peut être serrait il préférable d'utiliser
les possibilités du framework.

Sur la MSDN il y a un page dédiée aux classes FTP de .net 2:
http://msdn.microsoft.com/en-us/library/ms229718.aspx

Il y a de fortes chances que tu y trouve ton bonheur.
--
Jérémy JEANSON
MCP
http://jeremy.blogdns.net





Avatar
Alex C.
On 2 déc, 13:32, "Patrice" <http://www.chez.com/scribe/> wrote:
Sauf erreur c'est généralement la date/taille qui sert à détermin er
empiriquement si la version est la même. Eventuellement cette informati on
pourrait éventuellement être stockée à part...

Le problème est que l'information de version étant dans le fichier, i l faut
lire le fichier pour avoir cette info ce qui donc ne sert plus à rien ( plus
le fait que c'est qq chose de particulier à tel ou tel format de fichie r et
non pas de général et encore moins entre des OS différents).

Voir par exemple :http://www.codeproject.com/KB/cs/FtpPublisher.aspx(en a nglais)

"Every file entry in the configuration contains a path and a DateTime sta mp
for when that file was uploaded last. It decides to upload if the file ha s
been modified since it last wrote the stamp. I chose this method instead of
getting the DateTime from the FTP because I wanted these local files to b e
the master copies." donc stockage du chemin et de la date /heure du derni er
téléchargement qui sert de base de comparaison pour savoir si le fich ier
sera à telécharger la prochaine fois...

--
Patrice

"Julius" a écrit dans le message de
groupe de discussion : ...

> Merci pour la réponse rapide !!
> J'ai jeté un oeil sur ces classes (system.Net, FtpWebRequest et
> FtpWebResponse). Pas la moindre trace d'une propriété pour obtenir une
> version d'exe ou de dll...
> des GetFileSize en veux tu en voilà!! Mais la taille, les dates (cr éation,
> etc...) semblent être les seules propriétés gérées par les ob jets d'info
> sur
> les fichiers...

> "Jérémy Jeanson" a écrit :

>> Bonjour Julius,

>> Vu que tu dispose de .net 2, peut être serrait il préférable d'u tiliser
>> les possibilités du framework.

>> Sur la MSDN il y a un page dédiée aux classes FTP de .net 2:
>>http://msdn.microsoft.com/en-us/library/ms229718.aspx

>> Il y a de fortes chances que tu y trouve ton bonheur.
>> --
>> Jérémy JEANSON
>> MCP
>>http://jeremy.blogdns.net



Bonjour,

Pour la vérification de nouvelle version de mes applications,
j'utilise tout simplement une base de donnée. En gros : une table qui
contient le nom de fichier, le nom de l'application rattachée à ce
fichier et la version du fichier.

Une simple requête SQL permet rapidement de connaitre la dernière
version :)