[VB.Net] Renommer un fichier sur un espace FTP

Résolu
ideesnoires Messages postés 8 Date d'inscription samedi 28 mars 2009 Statut Membre Dernière intervention 17 janvier 2010 - 13 juin 2009 à 21:53
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 - 16 juin 2009 à 19:44
Bonjour a toutes et a tous,
Je pense en dire long rien qu'avec le titre, mais plus on fournit d'infos, et meilleure est la qualité de la réponse ^^
Alors en effet, sur une machine cliente un fichier journal (log) en .txt est créer et est envoyé via ftp, m'envoie se déroule parfaitement bien, là n'est pas le soucis...C'est à dire qu'une fois envoyé, j'aurais souhaitée qu'il soit renommé avec la date et heure, "hélas, c'est là qu'est l'os", j'atteind mes limites et fait donc appel a votre aide...
Si quelqu'un a une solution ou une piste sur laquelle m'orienté?

PS : je fais ça en vb.net ;)
hum...et suis je au bon endroit pour poser ma question?

10 réponses

Profil bloqué
14 juin 2009 à 00:37
il existe la fonction Api FtpRenamefile
Voici sa déclaration en VB 6.0 : adapte la pour VB Net

PrivateDeclareFunction FtpRenameFile Lib "wininet.dll" Alias "FtpRenameFileA" (ByVal hFtpSession AsLong, ByVal lpszExisting AsString, ByVal lpszNew AsString) AsBoolean

La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.

GRENIER Alain
3
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
14 juin 2009 à 01:59
Bonsoir,

Pour les fonctions FTP le framework dispose des fonction de requêtes FTP :

Utilise'System.Net.FtpWebRequest' pour evoyer une requête FTP vers un serveur, 'System.Net.FtpWebResponse' pour recevoir un réponse de celui-ci, tu peux bien entendu choisir ta requête via les constantes de la classe : 'System.Net.WebRequestMethods.Ftp' :

System.Net.WebRequestMethods.Ftp.AppendFile
System.Net.WebRequestMethods.Ftp.DeleteFile
System.Net.WebRequestMethods.Ftp.DownloadFile
System.Net.WebRequestMethods.Ftp.GetDateTimestamp
System.Net.WebRequestMethods.Ftp.GetFileSize
System.Net.WebRequestMethods.Ftp.ListDirectory
System.Net.WebRequestMethods.Ftp.ListDirectoryDetails
System.Net.WebRequestMethods.Ftp.MakeDirectory
System.Net.WebRequestMethods.Ftp.PrintWorkingDirectory
System.Net.WebRequestMethods.Ftp.RemoveDirectory
System.Net.WebRequestMethods.Ftp.Rename
System.Net.WebRequestMethods.Ftp.UploadFile
System.Net.WebRequestMethods.Ftp.UploadFileWithUniqueName

Pour plus d'information presse F2 sous Visual Basic et saisie FTP. Tu peux aussi rechercher des exemples sur ce site.

                                                                              
Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
3
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
16 juin 2009 à 10:45
Salut,

Il est vrais en théorie cela sert pour renommer des dossiers, mais ca fonctionne aussi avec les fichiers.

Attention à la syntaxe : ftp.Rename ("/Dossier/sous dossier/fichier.ext", "Nouveau nom de fichier.ext")

Regarde cette source c'est un client FTP qui l'utilise.

@+ Mayzz.

                                                                              
Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer. <
3
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
14 juin 2009 à 02:03
Oulala ! je me suis même pas relu ;o) 
Désolé à 2h00 du mat. je ne suis plus très frais ^^
                                                                              
Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer. <
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ideesnoires Messages postés 8 Date d'inscription samedi 28 mars 2009 Statut Membre Dernière intervention 17 janvier 2010
14 juin 2009 à 12:04
Bonjour,
Je vous remercie infiniment!
Je test vos pistes et vous donne ma solution utilisée :D
Merci beaucoup!!
0
ideesnoires Messages postés 8 Date d'inscription samedi 28 mars 2009 Statut Membre Dernière intervention 17 janvier 2010
16 juin 2009 à 09:53
Re bonjour,
Alala j'ai du mal^^ De ce que j'ai cru comprendre a ce que visual studio me dit, "System.Net.WebRequestMethods.Ftp.Rename" sert a renommer un dossier, sa fonctionne, mais po pour mon fichier :s
Je vais essayer de voir ce que pourrais donner une adaptation de la piste de Galain ;)
D'autres idées?
Bonne journée à tous!
0
ideesnoires Messages postés 8 Date d'inscription samedi 28 mars 2009 Statut Membre Dernière intervention 17 janvier 2010
16 juin 2009 à 17:03
Bonjour,
Je te remercie beaucoup de ta réponse, très appréciable quand on débute comme moi ^^
Alors j'ai bien trouvé la partie ou il renomme dans la source intéressante que tu cites (fichier demo.vb ligne 200), mais certainement faute à moi, je n'y vois pas ce que je cherche :s
En utilisant "System.Net.WebRequestMethods.Ftp.Rename("ftp://@ftp/arborescence/fichier.txt", "ftp://@ftp/arbo/fichier160609.txt")" , visual studio me renvoie "Expression is not a method", et la je dis "GLURP" ^^
J'ai tout de même ajouté "Imports System.net.WebRequestMethods", mais cela dépasse quelque peu...
0
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
16 juin 2009 à 17:30
Tu peux poster ton code ???

                                                                              
Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer. <
0
ideesnoires Messages postés 8 Date d'inscription samedi 28 mars 2009 Statut Membre Dernière intervention 17 janvier 2010
16 juin 2009 à 19:14
Re bonjour,
Oui bien sur, sans aucun soucis pour le code, c'est un projet sur lequel je fais les essais avant d'en concrétiser un autre plus gros :

<hr size="2" width="100%" />Imports System
Imports System.Net.WebRequestMethods.Ftp

Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        If System.IO.File.Exists("c:\logsauvegarde.txt") = False Then
            System.IO.File.CreateText("c:\logsauvegarde.txt")

        Else
            Dialog1.Show()
        End If

    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        My.Computer.Network.UploadFile("c:\logsauvegarde.txt", "ftp://@ftp/log.txt", "id", "mdp")

       
    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        System.Net.WebRequestMethods.Ftp.Rename("ftp://@ftp/logsauvegarde.txt", "ftp://@ftp/log160609.txt")

    End Sub
End Class

<hr size="2" width="100%" />
0
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
16 juin 2009 à 19:44
Heu... oué effectivement ya une erreur de syntaxe...
T'as été voirla source que je t'ai filé ? faut regarder dans la classe qui gère le FTP...

                                                                              
Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer. <
0
Rejoignez-nous