CFile.Open()的一点问题

Athos_K 2009-07-30 10:15:30
VC2008下运行,红色那行有问题,找了半天不知道为啥,谁帮下!
#include "stdafx.h"
//#include<windows.h>
#include<afxwin.h>
int _tmain(int argc, _TCHAR* argv[])
{
CString strFileTitle;
CFileFind finder;
CFile file;
//CFileException *p=NULL;
BOOL bWorking=finder.FindFile(_T("E:\\*.txt"));
while(bWorking)
{
bWorking=finder.FindNextFile();
strFileTitle=finder.GetFilePath();
if(!file.Open(strFileTitle,CFile::modeReadWrite|CFile::shareDenyWrite))
MessageBox(NULL,strFileTitle,NULL,MB_OK);
}
return 0;
}
...全文
153 点赞 收藏 5
写回复
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zyq5945 2009-07-30
[Quote=引用 4 楼 athos_k 的回复:]
对了,我E:\下有2个.txt文件。是不是一个CFile对象在在Close()之前只能Open()一个文件?是不是因为这个出错的?

[/Quote]
得先关闭刚才打开的句柄。
回复
Athos_K 2009-07-30
对了,我E:\下有2个.txt文件。是不是一个CFile对象在在Close()之前只能Open()一个文件?是不是因为这个出错的?
回复
Athos_K 2009-07-30
以下是错误消息窗口的内容:
File:f\dd\vctools\vc7libs\ship\atlmfc\src\mfc\filecore.cpp
Line:144
For information on how your program can cause an assertion failure,
see the Visual C++documentation on asserts.

之后我选择重试,消息框说触发了个断点,在:
ASSERT(m_hFile == INVALID_HANDLE_VALUE);
搞不懂了。
回复
副组长 2009-07-30
看看strFileTitle是不是有一个合法的文件名,是不是一个已经存在的文件。

如果都没问题,再看一看文件是不是只读的。
回复
雪影 2009-07-30
使用如下代码,查看是什么异常
CFileException e;
if( !file.Open(strFileTitle,CFile::modeReadWrite|CFile::shareDenyWrite, &e ) )
{
#ifdef _DEBUG
afxDump << "File could not be opened " << e.m_cause << "\n";
#endif
}
回复
发动态
发帖子
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
社区公告
暂无公告