| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 727 人关注过本帖
标题:CFileFind FindFile 错误码为2,是什么错误?
只看楼主 加入收藏
lfh001001
Rank: 2
等 级:论坛游民
帖 子:11
专家分:10
注 册:2012-2-29
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:6 
CFileFind FindFile 错误码为2,是什么错误?
鄙人第一次来编程论坛,庆祝一下,呵呵,只有20可用分啊。崩溃。

先看下代码。
void CCMyMusicPage::OnNMDblclkListMusicLocal(NMHDR *pNMHDR, LRESULT *pResult)
{
    LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<NMITEMACTIVATE*>(pNMHDR);
    // TODO: 在此添加控件通知处理程序代码
    *pResult = 0;

    POSITION pos;
    pos = m_lc_music_local.GetFirstSelectedItemPosition();
    if(pos != NULL)
    {
        int item = m_lc_music_local.GetNextSelectedItem(pos);
        if(item == 0 && !m_b_isRoot)
        {
            CFileFind finder;
            BOOL result = finder.FindFile(m_s_cFilePath);
            int e = GetLastError();
            if(result)
            {
                result = finder.FindNextFile();
                m_s_cFilePath = finder.GetRoot();
                ClearLocalLList();
                InitLocalList(m_s_cFilePath + _T("\\*.*"),FALSE);
                //UpdateData(FALSE);
            }
            finder.Close();
        }
        else{
            CString text = m_lc_music_local.GetItemText(item,0);
            CFileFind finder;
            BOOL result = finder.FindFile(m_s_cFilePath + _T("\\") + text);
            if(result)
            {
                result = finder.FindNextFile();
                if(finder.IsDirectory())
                {
                    ClearLocalLList();
                    InitLocalList(m_s_cFilePath + _T("\\") + text + _T("\\*.*"),FALSE);
                }
            }
            finder.Close();
        }
    }
}

做一个文件列表。上面的函数是响应CListCtrl的双击响应事件。列表中的第一行显示"上一页",所以在双击第一项时,列表显示当前目录的父目录。运行时在第一次双击"上一页"时正常,但是再次双击时
        BOOL result = finder.FindFile(m_s_cFilePath);   结果result = 0;获取错误码
    int e = GetLastError();  得到e = 2;


请各位大侠帮忙看看,这是什么错误啊?谢谢了。
搜索更多相关主题的帖子: void 编程论坛 
2012-02-29 11:37
lfh001001
Rank: 2
等 级:论坛游民
帖 子:11
专家分:10
注 册:2012-2-29
收藏
得分:0 
对了,使用vs2008
2012-02-29 11:39
yuccn
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:何方
等 级:版主
威 望:167
帖 子:6815
专家分:42393
注 册:2010-12-16
收藏
得分:20 
系统找不到指定的文件。

确认你的文件存在,或者确认你读的文件路径正确。

调试下就知道了

我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2012-02-29 12:36
lfh001001
Rank: 2
等 级:论坛游民
帖 子:11
专家分:10
注 册:2012-2-29
收藏
得分:0 
文件肯定是存在的。
2012-02-29 12:53
lfh001001
Rank: 2
等 级:论坛游民
帖 子:11
专家分:10
注 册:2012-2-29
收藏
得分:0 
测试的时候,我把目录系统建了好几层。发现只要连续连词双击上一层就不行
2012-02-29 13:41
yuccn
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:何方
等 级:版主
威 望:167
帖 子:6815
专家分:42393
注 册:2010-12-16
收藏
得分:0 
错误代码2 说明没有找到你的文件,如果你确定文件一定正确,那么你确认下m_s_cFilePath 是否就是你要打开文件的路径,在            BOOL result = finder.FindFile(m_s_cFilePath);前面 用::MessageBox(NULL, m_s_cFilePath,NULL, NULL);打出来看看啊

我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2012-02-29 13:49
lfh001001
Rank: 2
等 级:论坛游民
帖 子:11
专家分:10
注 册:2012-2-29
收藏
得分:0 
嗯,谢谢,我知道错误了。崩溃,m_s_cFilePath = finder.GetRoot();  getRoot函数的返回值是以"\\"做结尾的。搞了半天还是需要通过解析字符串来获得已知目录的父目录。VC也太死板了吧。
2012-02-29 14:07
快速回复:CFileFind FindFile 错误码为2,是什么错误?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.037071 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved