Ftp FtpFileFind找到的中文文件路径是乱码,有些删除不成功?

上岸の鱼 2011-06-10 02:56:21
我在Ftp目录上有一个文件夹“17”,里面有一些中文文件,例如“syscfg卡片机.ini”,让后用FtpFileFind类遍历去删除,结果发现查找出来的中文文件是乱码,调用Remove有些删除成功,有些失败,想请问怎么解决中文删除失败的问题?

void CFtpTestDlg::OnBnClickedBtnRemoveDir()
{
// TODO: Add your control notification handler code here
CInternetSession mysession;
CFtpConnection* pFtpConn = mysession.GetFtpConnection(_T("10.122.52.79"),_T("xux"),_T("123456"),21,false);
if(pFtpConn)
{
CString downloadFtpPath(_T("17"));
CFtpFileFind finder(pFtpConn);
BOOL res = RemoveFtpDir(downloadFtpPath,finder,pFtpConn);
finder.Close();
}
}

BOOL CFtpTestDlg::RemoveFtpDir(LPCTSTR pstrDirName,CFtpFileFind& finder,CFtpConnection* pFtpConn)
{
CString csFile = pstrDirName + CString(_T("/*.*"));
BOOL bRes = finder.FindFile(csFile);
while(bRes)
{
bRes = finder.FindNextFile();
if (!finder.IsDots())
{
CString filePath = finder.GetFilePath();//那个syscfg卡片机.ini文件变成了17/syspic/syscfg鍗$墖鏈?ini
if (finder.IsDirectory())
{
finder.Close();
if (!RemoveFtpDir(filePath,finder,pFtpConn))
return FALSE;
if (bRes)
bRes = finder.FindFile(csFile);
}
else
{
if (!pFtpConn->Remove(filePath))//有一些中文乱码路径可以删除成功,有些失败
{
WCHAR buffer[128];
DWORD length = 128;
InternetGetLastResponseInfo(&dwError,buffer,&length);//这里获取的错误是:550 File not found
}
}
}

}
if (!pFtpConn->RemoveDirectory(pstrDirName))
{
return FALSE;
}

return TRUE;
}



跪求解决方案,小弟先行谢过
...全文
571 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
上岸の鱼 2011-06-13
  • 打赏
  • 举报
回复
星期一大家都上班了吧。。哭求大虾们施以援手,帮我一把吧。。。顶
上岸の鱼 2011-06-11
  • 打赏
  • 举报
回复
顶一下。。。纠结。。来人呀
上岸の鱼 2011-06-10
  • 打赏
  • 举报
回复
当前工程是Unicode的,FTP服务器不在Linux上,在Win Server 2003上
shenyi0106 2011-06-10
  • 打赏
  • 举报
回复
FTP服务器是不是在linux上?
Eleven 2011-06-10
  • 打赏
  • 举报
回复
你当前的工程是Unicode编码的吗?

18,356

社区成员

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

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