C ++迭代文件和目录

时间:2010-08-17 04:57:53

标签: c++

我正在开发一个C ++程序,它会自动将我的工作备份到我的FTP服务器上。到目前为止,我可以通过使用此

指定文件名来上传单个文件
CString strFilePath = szFile ;
            int iPos = strFilePath.ReverseFind('\\');
            CString strFileName = strFilePath.Right((strFilePath.GetLength()- iPos-1) );

            CString strDirPath = m_szFolderDroppedIn ;
            strDirPath = strDirPath.Mid(0,strDirPath.GetLength() - 1);  
            int iPost = strDirPath.ReverseFind('\\');
            CString strDirName = strDirPath.Right((strDirPath.GetLength()- iPost -1) );

            bool curdir = ftpclient.SetServerDirectory((char*)strDirName.GetBuffer(strDirName.GetLength())); 

            //Upload to Server 
            int uploadret = ftpclient.PutFile(szFile,(char*)strFileName.GetBuffer(strFileName.GetLength()),0,true,dwLastError); 
            m_lsDroppedFiles.RemoveAll();
            break;
            }

现在我希望能够遍历目录(包含子目录)并递归调用。我在获取目录中的文件时遇到了问题。

任何帮助或代码段......

2 个答案:

答案 0 :(得分:1)

由于您使用的是MFC,因此可以使用CFileFind类。示例代码在MSDN中给出。或者,您也可以使用boost.filesystem

答案 1 :(得分:0)

@Swapnil:如果您使用boost::filesystem,则会有recursive_directory_iterator