8
votes

Comment envoyer des commandes FTP arbitraires en C #

J'ai mis en place la possibilité de télécharger, de télécharger, de supprimer, etc. à l'aide de la classe ftpwebrequest code> en C #. C'est assez simple.

Ce que je dois faire maintenant, c'est la prise en charge d'envoyer des commandes FTP arbitraires telles que P>

<!-- The following commands will be executed before any uploads occur -->
<extraCommands>
     <command>quote SITE LRECL=132 RECFM=FB</command>
</extraCommands>


1 commentaires

Avez-vous essayé Reex FTP avec ces commandes? Cela a-t-il bien fonctionné?


4 Réponses :


9
votes

Je ne pense pas que cela puisse être fait avec ftpwebrequest ... Le seul moyen de spécifier une commande FTP passe via la propriété méthode et la documentation indique:

Notez que les chaînes définies dans la classe WebRequestMethods.ftp sont les seules options prises en charge pour la propriété méthode . Réglage de la méthode de toute autre valeur entraînera un argumentException exception.

Site et System ne sont pas parmi les options prédéfinies, je suppose que vous êtes coincé ...

Ne perdez pas de temps pour essayer la classe WebClient , il vous donnera une plus grande flexibilité que ftpwebrequest . .

Cependant, il existe de nombreuses implémentations FTP tiers, open source ou commerciale, et je suis à peu près sûr que certains d'entre eux peuvent gérer des commandes personnalisées ...


0 commentaires

3
votes

Vous pouvez essayer notre Composant FTP Rebex :

// create client and connect 
Ftp client = new Ftp();
client.Connect("ftp.example.org");
client.Login("username", "password");

// send SITE command
// note that QUOTE and SITE are ommited. QUOTE is command line ftp syntax only.
client.Site("LRECL=132 RECFM=FB");

// send SYST command
client.SendCommand("SYST");
FtpResponse response = client.ReadResponse();
if (response.Group != 2) 
  ; // handle error 

// disconnect 
client.Disconnect();


0 commentaires

-5
votes

Utiliser sendcommand ("site lrecl = 242 blksize = 0 recfm = fb");


1 commentaires

Ceci est très inutile car aucune information n'est fournie. Qu'est-ce que "Sendcommand" est-ce une bibliothèque tierce, a-t-elle quelque chose à voir avec ftpwebrequest ???



7
votes

Le ftpwebrequest code> ne vous aidera pas comme Thomas levesque a dit dans son Réponse . Vous pouvez utiliser certaines solutions tierces ou sur le code basé sur TCPClient code> TCPCLIDe simplifié que j'ai refacturé à partir d'un Réponse écrite dans Visual Basic :

220 (vsFTPd 2.2.2)
user [FTP_USER_NAME]
331 Please specify the password.
pass [FTP_PASSWORD]
230 Login successful.
SITE CHMOD 755 [FTP_FILE_PATH]
200 SITE CHMOD command ok.


0 commentaires