主题:vc实现ftp
sylau
[专家分:0] 发布于 2008-04-01 17:03:00
本人最近在写一个ftp的工具想请教一下
通过调用CFtpConnection类的getfile()函数来实现下载功能 但是怎样才能获得ftp上的文件名和怎样实现选择本地保存的路径
getfile()函数的第二个参数是不是也是一个带路径的文件名?能用getpathname()得到吗?
所以我想请教一下 怎样获得ftp上的文件名和怎样实现从ftp上下载文件到本机.
希望有知道的朋友能帮忙看一下,先谢过了.
回复列表 (共3个回复)
沙发
bcahzvip [专家分:6040] 发布于 2008-04-01 17:21:00
自己找几个例子看看就能搞了!~
板凳
f-wind [专家分:1240] 发布于 2008-04-02 10:18:00
CFtpConnection::GetFile
BOOL GetFile(LPCTSTR pstrRemoteFile,
LPCTSTR pstrLocalFile,
BOOL bFailIfExists = TRUE,
DWORD dwAttributes = FILE_ATTRIBUTE_NORMAL,
DWORD dwFlags = FTP_TRANSFER_TYPE_BINARY,
DWORD dwContext = 1
);
返回值:
如果成功,则返回非零值,否则为0。如果失败,则调用Win32函数GetLastError返回出错原因。
参数: pstrRemoteFile 指向以空终止符结束的字符串,包含从FTP服务器获取的文件名。
pstrLocalFile 指向以空终止符结束的字符串,包含在本地系统创建的文件名。
bFailIfExists 说明文件名是否被已存在的文件使用。如果本地文件名已存在并且参数为TRUE,则GetFile失败。否则GetFile会删除已存在的文件的拷贝。
dwAttributes 指定文件属性,可为以下FILE_ATTRIBUTE_* 标记的组合: · FILE_ATTRIBUTE_ARCHIVE 文件为档案文件。应用使用此属性标明文件可以备份和移动。
· FILE_ATTRIBUTE_COMPRESSED 文件或目录为压缩。对文件来说,表明文件中的所有数据都是压缩的;如果为目录,表示新建文件和子目录缺省为压缩的。
· FILE_ATTRIBUTE_DIRECTORY 文件为目录。
· FILE_ATTRIBUTE_NORMAL 文件没有其它属性设置,此属性仅可单独使用,任何其它属性覆盖此属性。
· FILE_ATTRIBUTE_HIDDEN 文件隐藏,不包含在通常的目录列表。
· FILE_ATTRIBUTE_READONLY 文件只读,应用可读出文件但不可写、删文件。
· FILE_ATTRIBUTE_SYSTEM 文件是操作系统的一部分或为操作系统专用。
· FILE_ATTRIBUTE_TEMPORARY 文件用于临时存储。只有在完全必要时应用才写文件,大多数文件数据存储于存储区而不存入介质,因为文件将很快被删除。
dwFlags 指定传输发生的条件,此参数可以为联机文档“平台SDK在线”中的FtpGetFile中描述的任何dwFlags值。
dwContext 表示获取文件的上下文标识符,请参阅说明,了解有关dwContext的更多信息。
说明:
调用此成员函数从FTP服务器中获得一个文件并把它存到本地机器。GetFile是一个高级例程,处理所有从FTP服务器读文件存入本地相关的操作。应用如果只想获取文件数据或在文件传输中加强控制,则应使用OpenFile和CInternetFile::Read。
如果dwFlags是FILE_TRANSFER_TYPE_ASCII,文件数据翻译器将控件和格式化字符转换到Windows中。缺省转换为二进制,下载文件与服务器上的存储方式一样。
pstrRemoteFile和pstrLocalFile可为与当前目录相关的部分或全部可用文件名。文件名分隔符可为反斜线(\)或斜线(/),使用之前GetFile把它转化为适当的字符。
覆盖缺省的dwContext可设置选择值。此上下文标识符与由CInternetSession对象创建的CFtpConnection对象的指定操作相关联,值返回给Cinternet-Session::OnStatusCallback,提供被标识的操作状态。要了解更多信息,可参阅联机文档“Visual C++程序员指南”中的“Internet初步:WinInet”。
3 楼
sylau [专家分:0] 发布于 2008-04-03 09:52:00
谢谢了,不过怎样才能确定保存文件的路径呢?我还是很迷糊啊!
我来回复