CFtpConnectioin::Command咋用?

yuanmoren 2009-11-04 08:41:21
vs2005

//...
CFtpConnection* pConnect = NULL;
CInternetSession sess(sectionName);
try
{
pConnect = sess.GetFtpConnection(_cfg.hostName, _cfg.account, _cfg.pwd, _cfg.hostPort, TRUE);
strcpy_s(strCmd, sizeof(strCmd), "cd /");
pConnect->Command(strCmd, CFtpConnection::CmdRespRead);//-------------有错误
// 200 Type set to I.
// 227 Entering Passive Mode (192,168,0,61,71,174).
// 500 'CD /': command not understood

}
catch (CInternetException* pEx)
{
//...
}

//...

报错为无法识别命令
CFtpConnectioin::Command 第一个参数难道和dos下直接敲入的命令行不一样?
...全文
242 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuanmoren 2009-11-08
  • 打赏
  • 举报
回复
自己解决
bragi523 2009-11-05
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 yuanmoren 的回复:]
感觉是不是没有权限执行这条命令?
在dos下相同的用户,可以执行该命令

找了一下怎么没有这个函数呀?
可能你所用的msdn版本太老了
既然都可以运行了,证明确实是cftpconnection的成员函数
[/Quote]
一个ftp登陆用户有权限去主目录?
你可以试试cd ..之类的
yuanmoren 2009-11-05
  • 打赏
  • 举报
回复
感觉是不是没有权限执行这条命令?
在dos下相同的用户,可以执行该命令

找了一下怎么没有这个函数呀?
可能你所用的msdn版本太老了
既然都可以运行了,证明确实是cftpconnection的成员函数
delphiwcdj 2009-11-05
  • 打赏
  • 举报
回复
找了一下怎么没有这个函数呀?

SetCurrentDirectory 设置当前FTP目录
GetCurrentDirectory 获取此次连接的当前目录
GetCurrentDirectoryAsURL 获取作为URL的此次连接的当前目录
RemoveDirectory 从服务器移去指定目录
CreateDirectory 在服务器上构造一个目录
Rename 将服务器上的文件改名
Remove 从服务器上移去一个文件
PutFile 将一个文件放到服务器上
GetFile 从连接的服务器上获取一个文件
OpenFile 在连接的服务器上打开一个文件
Close 关闭与服务器的连接
bragi523 2009-11-05
  • 打赏
  • 举报
回复
感觉是不是没有权限执行这条命令?
你可以试试文件操作的命令
bragi523 2009-11-05
  • 打赏
  • 举报
回复
感觉是不是没有权限执行这条命令?
你可以试试文件操作的命令
yuanmoren 2009-11-05
  • 打赏
  • 举报
回复
自己顶
yuanmoren 2009-11-05
  • 打赏
  • 举报
回复
引用错了,10楼引用的是9楼的,不是8楼的
yuanmoren 2009-11-05
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 yuanmoren 的回复:]
试了好几个命令都是一个样子
ERROR!  200 Type set to I.
227 Entering Passive Mode (192,168,0,61,38,29).
500 'PUT D:\Downloads\kesy_download\55.txt': command not understood

用mkdir也不能成功
但是
cftpconnection::CreateDirectory就能成功
实在是诡异


[/Quote]
可能我说的不太明白,我现在想用CFtpConnection::command。
[Quote=引用MSDN:]
Sends a command directly to an FTP server.


CInternetFile* Command(
LPCTSTR pszCommand,
CmdResponseType eResponse = CmdRespNone,
DWORD dwFlags = FTP_TRANSFER_TYPE_BINARY,
DWORD_PTR dwContext = 1
);


Parameters
pszCommand
A pointer to a string containing the command to be sent.

eResponse
Determines whether a response is expected from the FTP server. Can be one of the following values:

CmdRespNone No response is expected.

CmdRespRead A response is expected.

dwFlags
A value containing the flags that control this function. For a complete list, see FTPCommand.

dwContext
A pointer to a value containing an application-defined value used to identify the application context in callbacks.

[/Quote]
对参数pszCommand,我原本认为和dos下的ftp命令一个样,但是验证了下,每次都是command not understood
为此我才来发帖,并不是单纯的创建文件夹,创建文件夹用CFtpConnection::CreateDirectory,这个已经验证过了,是成功的
bragi523 2009-11-05
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 yuanmoren 的回复:]
试了好几个命令都是一个样子
ERROR!  200 Type set to I.
227 Entering Passive Mode (192,168,0,61,38,29).
500 'PUT D:\Downloads\kesy_download\55.txt': command not understood

用mkdir也不能成功
但是
cftpconnection::CreateDirectory就能成功
实在是诡异


[/Quote]

这个函数是操作服务器上的目录
你这样'PUT D:\Downloads\kesy_download\55.txt'要干嘛
yuanmoren 2009-11-05
  • 打赏
  • 举报
回复
试了好几个命令都是一个样子
ERROR! 200 Type set to I.
227 Entering Passive Mode (192,168,0,61,38,29).
500 'PUT D:\Downloads\kesy_download\55.txt': command not understood

用mkdir也不能成功
但是
cftpconnection::CreateDirectory就能成功
实在是诡异

yuanmoren 2009-11-04
  • 打赏
  • 举报
回复
又没人踩
郁闷

18,357

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧