DATA :
p_host TYPE char64 VALUE '192.168.100.64 21'," IP
p_folder TYPE char255 VALUE '/aa/bb/', "ftp 路径
p_uname TYPE char30 VALUE 'sys' , "用户名称
p_pwd TYPE char30 VALUE 'psword' . "用户密码
DATA : dest LIKE rfcdes-rfcdest VALUE 'SAPFTP',
compress TYPE c VALUE 'N'.
DATA: hdl TYPE i,
key TYPE i VALUE 26101957,
slen TYPE i,
cmd(80) TYPE c.
slen = strlen( p_pwd ).
* "获取加密密码 保存到P_PWD
CALL FUNCTION 'HTTP_SCRAMBLE'
EXPORTING
source = p_pwd
sourcelen = slen
key = key
IMPORTING
destination = p_pwd.
* 连接ftp服务器
CALL FUNCTION 'FTP_CONNECT'
EXPORTING
user = p_uname
password = p_pwd
host = p_host
rfc_destination = dest
IMPORTING
handle = hdl. "连接的句柄
"IF SY-SUBRC <> 0.
"*- &1失败
"ELSE.
"*- 成功
"ENDIF.
"获取ftp 某个目录下文件集合 、、start ..、
DATA result_file_name(300) TYPE c .
DATA: BEGIN OF result OCCURS 0,
line(100) TYPE c,
END OF result.
CALL FUNCTION 'FTP_COMMAND'
EXPORTING
handle = hdl
command = 'nlist /a/b/c/' " 通过nlist 查看ftp下某个路径下文件 (注意nlist后面有个空格)
compress = compress
TABLES
data = result
EXCEPTIONS
command_error = 1
tcpip_error = 2.
LOOP AT result.
WRITE AT / result-line. "这里面就是获取的ftp某个路径下文件名称
ENDLOOP.