遍历文件夹

//  首先选择文件夹
void  CXMLtoolDlg::OnBrowseInput() 
{
    BROWSEINFO   bf;   
    LPITEMIDLIST   lpitem;   
    memset(
&bf,0,sizeof BROWSEINFO);   
    bf.hwndOwner 
= this->m_hWnd;   
    bf.lpszTitle 
= "选择路径";   
    bf.ulFlags 
= BIF_RETURNONLYFSDIRS;     //属性可自己选择   
    lpitem = SHBrowseForFolder(&bf);   
    
if(lpitem==NULL)     //如果没有选择路径则返回0   
        return ; 
    
    
//如果选择了路径则复制路径,返回路径长度      
    SHGetPathFromIDList(lpitem, m_InputDir.GetBufferSetLength(MAX_PATH));  
    m_InputDir.ReleaseBuffer();
    
    UpdateData(FALSE);
}


//  然后遍历文件夹(中的xml文件)
void  CXMLtoolDlg::BrowseDir(CString strDir)
{
    
//AfxMessageBox(strDir);

    CFileFind ff;
    CString szDir 
= strDir;
    
//HTREEITEM hSubItem;
    
    
if(szDir.Right(1!= "/")  szDir += "/";
    
    szDir 
+= "*.*";
    
    BOOL res 
= ff.FindFile(szDir);
    
while( res )
    
{
        res 
= ff.FindNextFile();
        
if(ff.IsDirectory() && !ff.IsDots())
        
{
            CString strPath 
= ff.GetFilePath();
            
//CString strTitle = ff.GetFileTitle();
            
            
//hSubItem = m_FileTree.InsertItem( strTitle, 0, 0,parent );
            
            BrowseDir(strPath); 
// 递归调用
        }

        
else if(!ff.IsDirectory() && !ff.IsDots())
        
{
            
//CString strTitle = ff.GetFileTitle();
            CString strTitle = ff.GetFilePath();

            
if (strTitle.Find(".xml")>-1 || strTitle.Find(".XML")>-1)
            
{
                
//AfxMessageBox(strTitle);
                SomeFuncXXX(strTitle); // 处理文件
            }

            
            
//m_FileTree.InsertItem( strTitle, 0, 0, parent );
        }

        
    }

    ff.Close();

}
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值