J'ai ce code de travail de ce Lien , pour télécharger un fichier à Un site FTP:
' set up request... Dim clsRequest As System.Net.FtpWebRequest = _ DirectCast(System.Net.WebRequest.Create("ftp://ftp.myserver.com/test.txt"), System.Net.FtpWebRequest) clsRequest.Credentials = New System.Net.NetworkCredential("myusername", "mypassword") clsRequest.Method = System.Net.WebRequestMethods.Ftp.UploadFile ' read in file... Dim bFile() As Byte = System.IO.File.ReadAllBytes("C:\Temp\test.txt") ' upload file... Dim clsStream As System.IO.Stream = _ clsRequest.GetRequestStream() clsStream.Write(bFile, 0, bFile.Length) clsStream.Close() clsStream.Dispose()
6 Réponses :
En regardant le MSDN Documentation Ceci carte à la Commande de magasin FTP. En regardant la définition de la commande FTP START, il écrasera les fichiers existants si l'utilisateur dispose d'autorisations. P>
Donc, dans ce cas, oui, le fichier serait écrasé. P>
de: lien p>
Store (Store) P>
START P>
Cette commande provoque l'acceptation du serveur FTP d'accepter les données transférées via la connexion de données et de stocker les données sous forme de fichier sur le serveur FTP. Si le fichier spécifié dans PathName existe sur le site du serveur, son contenu doit être remplacé par les données transférées. Un nouveau fichier est créé sur le serveur FTP si le fichier spécifié dans PathName n'existe pas déjà. p>
Lorsqu'une opération d'écriture de fichier est invitée à écrire un fichier sur un pointeur, il ne vérifiera pas si le fichier existe; Simplement, le système de fichiers permettra au fonctionnement de continuer à moins que les octets en mémoire soient utilisés ( Si vous souhaitez vérifier si un fichier existe avant d'écrire le fichier utilise ma méthode getdirectory dans vb.net ici: https: // Stackoverflow.com/a/28664731/2701974 p>
Utilisez cette fonction pour télécharger le fichier
Sous-uploadfile publique (byval _filename en tant que chaîne, byval _uploadpath en tant que chaîne, byval _ftpuser en tant que chaîne, byval _ftpasser en tant que chaîne) P>
DIM _fileinfo comme nouveau système.IO .FileInfo (_filename) p>
' Create FtpWebRequest object from the Uri provided Dim _FtpWebRequest As System.Net.FtpWebRequest = CType(System.Net.FtpWebRequest.Create(New Uri(_UploadPath)), System.Net.FtpWebRequest) ' Provide the WebPermission Credintials _FtpWebRequest.Credentials = New System.Net.NetworkCredential(_FTPUser, _FTPPass) ' By default KeepAlive is true, where the control connection is not closed ' after a command is executed. _FtpWebRequest.KeepAlive = False ' set timeout for 20 seconds _FtpWebRequest.Timeout = 20000 ' Specify the command to be executed. _FtpWebRequest.Method = System.Net.WebRequestMethods.Ftp.UploadFile ' Specify the data transfer type. _FtpWebRequest.UseBinary = True ' Notify the server about the size of the uploaded file _FtpWebRequest.ContentLength = _FileInfo.Length ' The buffer size is set to 2kb Dim buffLength As Integer = 2048 Dim buff(buffLength - 1) As Byte ' Opens a file stream (System.IO.FileStream) to read the file to be uploaded Dim _FileStream As System.IO.FileStream = _FileInfo.OpenRead() Try ' Stream to which the file to be upload is written Dim _Stream As System.IO.Stream = _FtpWebRequest.GetRequestStream() ' Read from the file stream 2kb at a time Dim contentLen As Integer = _FileStream.Read(buff, 0, buffLength) ' Till Stream content ends Do While contentLen <> 0 ' Write Content from the file stream to the FTP Upload Stream _Stream.Write(buff, 0, contentLen) contentLen = _FileStream.Read(buff, 0, buffLength) Loop ' Close the file stream and the Request Stream _Stream.Close() _Stream.Dispose() _FileStream.Close() _FileStream.Dispose() Catch ex As Exception MessageBox.Show(ex.Message, "Upload Error", MessageBoxButtons.OK, MessageBoxIcon.Error) End Try
Oui, le protocole FTP écrase les fichiers existants sur le téléchargement.
Notez qu'il existe de meilleurs moyens de mettre en œuvre le téléchargement. p>
le moyen le plus trivial pour télécharger un fichier binaire sur un serveur FTP sur un serveur FTP. Utilisation de .NET Framework utilise Si vous avez besoin d'un contrôle plus important, que Si vous devez surveiller une progression de téléchargement, vous devez copier Le contenu en morceaux vous-même: p> pour GUI Progress (WinForms si vous souhaitez télécharger tous les fichiers D'un dossier, voir l'exemple C # à webclient.uploadfile code>
: p> WebClient code> n'offre pas (comme TLS/ssL Encryption , mode de transfert ASCII / texte, mode actif, transfert de reprise, etc.), utilisez
ftpwebrequest code>
. Un moyen facile consiste simplement à copier un filtream code> au flux FTP à l'aide de
flux.copyto code>
: p> ProgressBar code>), voir Exemple C # à:
Comment montrer la barre de progression pour le téléchargement avec FTPWebRequest p>
Télécharger le répertoire des fichiers sur FTP serveur à l'aide de WebClient . p> p>
Cette réponse est pefect, une bonne addition, c'est comment créer des répertoires sur votre FTP: Stackoverflow.com/questions/9031336/...
WebClient.Downloadfile d'occasion, qui est similaire, pour télécharger un fichier à partir d'un site FTP et fonctionne également également. Upvoted, merci.
Ceci est le code de travail pour télécharger des fichiers sur un serveur FTP