Я реализовал способность загрузить, загрузите, удалите, и т.д. с помощью FtpWebRequest
класс в C#. Это является довольно прямым.
Что я должен сделать, теперь поддержка, отправляющая произвольные команды FTP такой как
quote SITE LRECL=132 RECFM=FB
or
quote SYST
Вот конфигурация в качестве примера прямо от нашего app.config
:
quote SITE LRECL=132 RECFM=FB
Я все еще исследую, как сделать это использование FtpWebRequest
. Я, вероятно, попробую WebClient
класс затем. Кто-либо может указать на меня в правильном более быстром направлении?Спасибо!
ОБНОВЛЕНИЕ: я пришел к тому же самому заключению с Платформы.NET 3.5 FtpWebRequest
не поддерживает ничего кроме того, что находится в WebRequestMethods.Ftp.*
. Я попробую приложение сторонних производителей, рекомендуемое некоторыми из других сообщений. Спасибо за справку!
Я не думаю, что это можно сделать с помощью FtpWebRequest
... Единственный способ указать команду FTP - использовать свойство Method
, а в документации указано:
Обратите внимание, что строки, определенные в классе
WebRequestMethods.Ftp
, являются единственными поддерживаемыми параметрами для свойстваMethod
. Установка для свойстваMethod
любого другого значения приведет к исключениюArgumentException
.
SITE и SYST не входят в число предопределенных параметров, поэтому я думаю, вы застряли ...
Не тратьте время на использование класса WebClient
, он даст вам еще меньше гибкости чем FtpWebRequest
.
Однако существует множество сторонних реализаций FTP, с открытым исходным кодом или коммерческих, и я почти уверен, что некоторые из них могут обрабатывать пользовательские команды ...
Вы можете попробовать наш компонент 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();
Используйте sendCommand ("SITE LRECL = 242 BLKSIZE = 0 RECFM = FB");