AX에서 .NET 클래스 사용 (예 : FTP 서버에 코드 로그를 다음 거기에 파일 이름을 바꿉니다
str ftpHostName = 'ftp.microsoft.com'; // without "ftp://", only name
str username = 'myloginname';
str password = 'mypassword';
str oldname = 'oldfilename';
str newname = 'newfilename';
System.Net.Sockets.Socket socket;
System.Net.Dns dns;
System.Net.IPHostEntry hostEntry;
System.Net.IPAddress[] addresses;
System.Net.IPAddress address;
System.Net.IPEndPoint endPoint;
void sendCommand(str _command)
{
System.Text.Encoding ascii;
System.Byte[] bytes;
;
ascii = System.Text.Encoding::get_ASCII();
bytes = ascii.GetBytes(_command + '\r\n');
socket.Send(bytes, bytes.get_Length(), System.Net.Sockets.SocketFlags::None);
}
;
socket = new System.Net.Sockets.Socket(System.Net.Sockets.AddressFamily::InterNetwork, System.Net.Sockets.SocketType::Stream, System.Net.Sockets.ProtocolType::Tcp);
hostEntry = System.Net.Dns::GetHostEntry(ftpHostName);
addresses = hostEntry.get_AddressList();
address = addresses.GetValue(0);
info(address.ToString());
endPoint = new System.Net.IPEndPoint(address, 21);
socket.Connect(endPoint);
sendCommand(strfmt("USER %1", username));
sendCommand(strfmt("PASS %1", password));
sendCommand(strfmt("RNFR %1", oldname));
sendCommand(strfmt("RNTO %1", newname));
이 그냥 예를 들어 있지만,이 코드를 mpdifying 약간 표준 FTP 명령을 사용하여 주시기이다. 개념이 불분명한지 알려주세요.
출처
2011-10-19 08:42:45
10p
** 프로세스 실행 ** 접근법을 사용하려고 시도했지만 모든 것이 _more 이하로 작동하는 것을 볼 수는 있지만 FTP 명령 파일은 수동으로 실행할 때 작동하지만 어떤 이유로 ** 파일 **을 가져 오지 않습니다 배치에서 실행될 때 서버에서. ftp 클라이언트에 -g 스위치를 추가하면 조금 도움이되었지만 이제는 서버의 파일을 ** PUT **하려고 시도하지만 결국에는 0 바이트 파일로 끝납니다. _기묘한_. 그러나 이것들은 위대한 트릭을 알고 있지만, 나는 .NET 접근법을 시도하고 그것이 어떻게 진행되는지 알아야한다고 생각합니다. 모든 것이 해결 될 때까지 너희들에게 맥주 한 잔을 줘야 겠어! :) –
Nevermind, Axaptapedia 링크가 완벽합니다! 고마워, ian_scho! –