Bonjour !
Voilà je me casse la tête depuis un petit moment sur une classe FTP.
J'ai bien entendu créé des méthodes Put / Get / rename et compagnie via FtpWebRequest et WebRequestMethods.
Tout ça fonctionne plutôt pas mal pour ma première source .net ^^
Mon souci :
Je voudrais créer une méthode Move pour déplacer un fichier se trouvant dans un répertoire du serveur FTP vers un autre répertoire se trouvant toujours sur le même serveur FTP.
J'ai fouiné quelque peu sur le net mais il semblerait que "Move" ne soit pas natif en FTP. Pourtant cela doit être possible car avec des logiciels comme FileZilla par exemple on peut le faire par un simple Glisser/déposer.
Ci-dessous un exemple de mon code pour la fonction Rename.
Je pense que cette fonction doit pouvoir être utilisée pour déplacer un fichier mais le FTP.RenameTo n'accepte qu'un nom de fichier et pas un chemin :'(
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 Public Function RenameFile(ByVal CheminFichier As String, ByVal NomfichierOriginal As String, ByVal NomFichierFinal As String) As Boolean Dim FTP As FtpWebRequest Dim Reply As FtpWebResponse Try If Left(CheminFichier, 1) <> "/" And Left(CheminFichier, 1) <> "\" Then CheminFichier = "/" & CheminFichier CheminFichier = Replace(CheminFichier, "\", "/") If Right(CheminFichier, 1) <> "/" And Left(CheminFichier, 1) <> "\" Then CheminFichier = CheminFichier & "/" FTP = DirectCast(FtpWebRequest.Create(p_HostIP & CheminFichier & NomfichierOriginal), FtpWebRequest) 'info de connexion FTP.Credentials = New NetworkCredential(p_UserID, p_UserPWD) 'Ferme la connexion apres le transfert FTP.KeepAlive = False 'On veut un transfer binaire et pas textuel FTP.UseBinary = True 'On défini la method. ici Downloadfile FTP.Method = WebRequestMethods.Ftp.Rename 'On renomme FTP.RenameTo = NomFichierFinal 'on récupère la reponse du serveur Reply = DirectCast(FTP.GetResponse(), FtpWebResponse) Reply.Close() Reply = Nothing FTP = Nothing Return True Catch If Not Reply Is Nothing Then Reply = Nothing If Not FTP Is Nothing Then FTP = Nothing p_LastErrorOccured = "Méthode RenameFile() a échoué. La raison invoqué est la suivante : " & vbCrLf & _ Err.Number & ": " & Err.Description Return False End Try End Function
Partager