Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2089208
  • 博文数量: 519
  • 博客积分: 10070
  • 博客等级: 上将
  • 技术积分: 3985
  • 用 户 组: 普通用户
  • 注册时间: 2006-05-29 14:05
个人简介

只问耕耘

文章分类

全部博文(519)

文章存档

2016年(1)

2013年(5)

2011年(46)

2010年(220)

2009年(51)

2008年(39)

2007年(141)

2006年(16)

我的朋友

分类: C/C++

2006-05-29 14:28:32

思路:
1. 循环递归调用FindNextFile()遍历整个目录

void CDir::Put(){
//初始化 
Init();
 CStringArray m_Dir;
 CString sdir;

 char *lpBuffer=new char[200];
 GetCurrentDirectory(200,lpBuffer);
 sdir=lpBuffer;

   BOOL bWorking =FindFile("*.*");
   while (bWorking)
   {
  
      bWorking = FindNextFile();
   if ( IsDots() ) continue;
   if (IsDirectory())
      { 
 //如果时目录,保存到数组里
 m_Dir.Add( GetFileName());
 //在服务器上创建相应的目录
 m_pFtpConnection->CreateDirectory(GetFileName());

   }
   else
   {
  //如果时文件,把文件传到服务器上
  m_pFtpConnection->PutFile(GetFileName(),GetFileName());
   }
   }
   int i=0;
      for(i=0;i   {
   SetCurrentDirectory(m_Dir.GetAt(i));
   m_pFtpConnection->SetCurrentDirectory(m_Dir.GetAt(i));
   //关键,递归调用Put()
   Put();
   SetCurrentDirectory("..");
   m_pFtpConnection->SetCurrentDirectory("..");
   }
 
}


void CDir::Init()
{ CInternetSession *m_pInetSession;
 CFtpConnection *m_pFtpConnection;
//上传c盘a目录
SetCurrentDirectory("c:\\a")
m_pInetSession=new CInternetSession();
try{
//获得ftp服务器连接
 m_pFtpConnection=m_pInetSession->GetFtpConnection(m_Svr,m_Username,m_Pwd,atoi(m_Port));
}
catch (CInternetException * pEx)
{
 TCHAR szError[1024];
  if ( pEx->GetErrorMessage(szError,1024))
  {   m_list->AddString( szError);  }

}
 if (m_pFtpConnection != NULL)
{
//把c盘a目录上传到服务器/opt/local目录
m_pFtpConnection->SetCurrentDirectory("/opt/local");
//在服务器上创建目录a
m_pFtpConnection->CreateDirectory(GetCurDir());
//切换服务器当前目录到新创建的目录a
m_pFtpConnection->SetCurrentDirectory(GetCurDir());

}


}

CString CDir::GetCurDir()//return "a" from full path "c:\a"
{
 
 char *lpBuffer=new char[200];
 GetCurrentDirectory(200,lpBuffer);
   int n,i;
   n=0;
    CString s=lpBuffer;
   while(*lpBuffer!=NULL)
   {
   if(*lpBuffer=='\\')
   i=n;   
   lpBuffer++;
  n++;
   }

return s.Mid(i+1);
 

}

阅读(2324) | 评论(0) | 转发(0) |
0

上一篇:Redhat 配置 wu-ftpd

下一篇:http 断点续传

给主人留下些什么吧!~~