я использую CMD (для Windows) для отправки файла на мэйнфреймы IBM и работает отлично, это что-то вроде этого:Использование C# для FTP-файл в мэйнфреймы, включая набор данных - Перевести FTP скрипт для FtpWebRequest кода
Open abc.wyx.state.aa.bb
User
Pass
lcd c:\Transfer>
Put examplefile 'ABCD.AA.C58FC.ABC1FD.ZP3ABC'
close
bye
мне нужно чтобы преобразовать это в C#. Я пытался использовать FtpWebRequest
, но не повезло. Я не могу понять, как включить набор данных, я думаю. Когда я запустить приложение я получаю следующее сообщение об ошибке:
((System.Exception)(ex)).Message "The remote server returned an error: (550) File unavailable (e.g., file not found, no access)." 550 Unable to store The remote server returned an error: (550) File unavailable (e.g., file not found, no access).
((FtpWebResponse)ex.Response).StatusDescription "550 Unable to store /'ABCD.AA.C58FC.ABC1FD.ZP3ABC/examplefile'\r\n"
Вот что я получил в C#
string user = "user";
string pwd = "password";
string ftpfullpath = @"ftp://abc.wyx.state.aa.bb//'ABCD.AA.C58FC.ABC1FD.ZP3ABC'/examplefile'";
try
{
FtpWebRequest ftp = (FtpWebRequest)FtpWebRequest.Create(ftpfullpath);
ftp.Credentials = new NetworkCredential(user, pwd);
ftp.KeepAlive = true;
ftp.UseBinary = false; //Use ascii.
ftp.Method = WebRequestMethods.Ftp.UploadFile;
FileStream fs = File.OpenRead(inputfilepath);
byte[] buffer = new byte[fs.Length];
fs.Read(buffer, 0, buffer.Length);
fs.Close();
Stream ftpstream = ftp.GetRequestStream();
ftpstream.Write(buffer, 0, buffer.Length);
ftpstream.Close();
}
catch (WebException ex)
{
String status = ((FtpWebResponse)ex.Response).StatusDescription;
throw new Exception(status);
}
Вы задумывались над тем, чтобы заглянуть в 'Process.Start', чтобы запустить пакетный файл или вы хотите отправить его, используя строго код C# ..? у вас есть googled, как подключиться и отправить файл через FTP с помощью C# .. Есть много примеров онлайн – MethodMan
Да, это должно быть на C#, и да, я смотрю ссылку, но я не мог найти ее полезной для меня. Я использую те же учетные данные, что и мой командный файл, у которого нет проблем с загрузкой файла. –
Я просто обновляю сообщение об ошибке и заменяю x пустыми именами. examplefiles - настоящее имя, которое я использую в скрипте cmd и работает. –