复制网络服务器上文件的函数(C语言)

求助复制网络服务器上文件的函数(C语言)
自己写小工具       要从FTP服务器上复制文件到本地
复制文件的函数要怎么写啊  
是不是要涉及到协议啊
还有就是遍历FTP上某一目录下的所有文件
现在知道的有两种方法       一种是用EnumNetObject等函数
还有一种好象是WIN32NETCONNECT把FTP上的文件夹映射成本地的文件夹
然后用FindFirstFile递归调用实现
着两中方法哪中快些啊

------解决方案--------------------
用API函数
复制文件 好像用Write函数
用API函数带上IP地方 端口 就行拉
用FOR循环 便利 服务器上的文件
有两个文件名很重要 ". " ".. "



------解决方案--------------------
http://source.winehq.org/source/dlls/wininet/ftp.c
------解决方案--------------------
用socket,找一份简单的实例代码,外加msdn应该可以搞定
------解决方案--------------------
映射成一个本地目录也是可以的。

遍历文件目录:
long handle;
struct _finddata_t filestruct;  
char path_search[_MAX_PATH];
handle = _findfirst( "目录 ",&filestruct);
if((handle == -1)) return;
if( ::GetFileAttributes(filestruct.name)& FILE_ATTRIBUTE_DIRECTORY )
{
if( filestruct.name[0] != '. ' )
{
_chdir(filestruct.name);
Search_Directory(szFilename);
_chdir( ".. ");
}
}
else
{
if( !stricmp(filestruct.name, szFilename) )
{
strcat(path_search, "\\ ");
strcat(path_search,filestruct.name);
MessageBox(path_search);
}
}
while(!(_findnext(handle,&filestruct)))
{
  if( ::GetFileAttributes(filestruct.name) &FILE_ATTRIBUTE_DIRECTORY )
{
if(*filestruct.name != '. ')
{
_chdir(filestruct.name);
Search_Directory(szFilename);
_chdir( ".. ");
}
else
{
if(!stricmp(filestruct.name,szFilename))
{
_getcwd(path_search,_MAX_PATH);
strcat(path_search, "\\ ");
strcat(path_search,filestruct.name);
MessageBox(path_search);
}
}
}
_findclose(handle);
}

------解决方案--------------------
用VC6.0和FML结合进行远程文件传输:
http://dev2dev.bea.com.cn/techdoc/200406205.html
------解决方案--------------------
基于select I/O模型的远程目录浏览与多线程文件下载:
http://www.vckbase.com/document/viewdoc/?id=1743