FindNextFile在浏览共享路径的时候会阻塞不返回,程序卡死,该怎么处理?

xinyi 2018-02-05 07:21:18
浏览共享路径的时候使用FindNextFile函数,有的时候函数进去后就不返回了,然后程序永远卡死在那里。

请问碰到这种情况该如何处理?微软做的函数怎么那么不靠谱,怎么都应该返回啊!
...全文
544 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
xinyi 2018-02-06
  • 打赏
  • 举报
回复
代码太复杂了,上一部分
#ifdef DEBUG_INFO_PROGRESS
	if(NULL!=m_pFileBuffer)
		m_pFileBuffer->ShowFileProgress(PROCESS_DEBUG_INFO_MSG2,(LPARAM)_T("LocalFile::Next:in"));
#endif

	while(::FindNextFile(m_hFind,&m_fd))
	{
#ifdef DEBUG_INFO_PROGRESS
		if(NULL!=m_pFileBuffer)
			m_pFileBuffer->ShowFileProgress(PROCESS_DEBUG_INFO_MSG2,(LPARAM)_T("LocalFile::Next:out1"));//还有文件时
#endif

			/*...............*/
	}

#ifdef DEBUG_INFO_PROGRESS
	if(NULL!=m_pFileBuffer)
		m_pFileBuffer->ShowFileProgress(PROCESS_DEBUG_INFO_MSG2,(LPARAM)_T("LocalFile::Next:out2"));//结束时
#endif
有问题后,在函数前后加了些信息显示,于是就定位到FindNextFile不返回,前面的输出in有,后面的输出out没有。
赵4老师 2018-02-06
  • 打赏
  • 举报
回复
system("dir /b /a-d c:\\*.* >d:\\allfiles.txt"); //读文件d:\\allfiles.txt的内容即C:\\下所有文件的名字 system("dir /b /a-d /s c:\\*.* >d:\\allfilesinsub.txt"); //读文件d:\\allfilesinsub.txt的内容即C:\\下所有文件的名字包含子目录 system("dir /b /ad c:\\*.* >d:\\alldirs.txt"); //读文件d:\\alldirs.txt的内容即C:\\下所有子目录的名字 请记住,能用shell命令获取文件、文件夹信息或者操作文件、文件夹最好用shell命令获取或者操作,而不要用各种API获取或者操作,因为当遇到非法文件夹名或非法文件名或非法文件长度、非法文件日期、压缩文件、链接文件、稀疏文件……等各种意料之外的情况时,API会处理的不全面或陷入死循环,而shell命令不会。 如果嫌system黑窗口一闪,将system("...")替换为WinExec("cmd /c ...",SW_HIDE);
xiaohuh421 2018-02-06
  • 打赏
  • 举报
回复
很多api没有增加超时机制, 确实比较老火
Eleven 2018-02-06
  • 打赏
  • 举报
回复
http://download.csdn.net/download/chenzhjlf/2485790 看下这个,看看有无帮助~
oyljerry 2018-02-05
  • 打赏
  • 举报
回复
应该是对网络共享路径支持有问题
zgl7903 2018-02-05
  • 打赏
  • 举报
回复
上代码, 是不是whil循环有问题?

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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