CFtpConnection上传、下载、删除文件的问题

CFtpConnection上传、下载、删除文件的问题,本来应该是很简单的,该类已经封装了相应的函数PutFile、GetFile、Remove。这三个函数都有一个参数就是远程文件路径,一般来说,可以用相对路径,如/a/b/c.txt。当ftp服务器为rhel5.0时,这样都没有问题,但是在rhel5.3上,却怎么也不能成功。但是通过ftp工具却能成功。通过flashfxp执行相应操作,观察其发送的命令,发现,当上传文件时,STOR命令的目的路径如果在当前目录,则可以成功,否则失败。于是在CFtpConnection上传、下载、删除文件前,先将当前路径设为目的路径,然后执行操作,执行完,再将当前路径设回去即可。。所以为了避免不同系统之间的麻烦,在执行这些ftp操作时,最好先修改当前路径。PS:CFtpConnection::Command函数中所执行的命令,并不是像put,get,ls之类的命令,这些不是标准的ftp命令(对应的标准命令为STOR、 RETR、LIST)。标准命令请查看相关的RFC文档。。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
MFC可以通过CFtpConnection类来实现FTP上传下载删除文件夹的操作。具体步骤如下: 1. 连接FTP服务器,使用CFtpConnection类的Connect函数连接FTP服务器。 2. 登录FTP服务器,使用CFtpConnection类的Login函数登录FTP服务器。 3. 切换工作目录,使用CFtpConnection类的SetCurrentDirectory函数切换到指定的工作目录。 4. 上传文件,使用CFtpConnection类的PutFile函数上传指定文件。 5. 下载文件,使用CFtpConnection类的GetFile函数下载指定文件。 6. 删除文件,使用CFtpConnection类的Remove函数删除指定文件。 7. 删除文件夹,使用CFtpConnection类的RemoveDirectory函数删除指定文件夹。 以下是一个简单的例子: ``` CFtpConnection ftp; CString serverName = _T("ftp.server_name.com"); CString userName = _T("user_name"); CString password = _T("password"); if (ftp.Connect(serverName, INTERNET_DEFAULT_FTP_PORT, userName, password)) { // 登录FTP服务器 ftp.Login(); // 切换工作目录 ftp.SetCurrentDirectory(_T("/folder_name")); // 上传文件 ftp.PutFile(_T("local_file_path"), _T("remote_file_name")); // 下载文件 ftp.GetFile(_T("remote_file_name"), _T("local_file_path")); // 删除文件 ftp.Remove(_T("remote_file_name")); // 删除文件ftp.RemoveDirectory(_T("folder_name")); // 断开连接 ftp.Close(); } ``` 需要注意的是,CFtpConnection类中的函数都是同步的,即会阻塞当前线程直到操作完成。如果想要异步执行操作,可以使用CFtpFileFind类和CFtpTransaction类。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值