码迷,mamicode.com
首页 > 其他好文 > 详细

file.open异常处理

时间:2020-07-06 12:35:24      阅读:92      评论:0      收藏:0      [点我收藏+]

标签:ffffff   hwnd   int   判断   display   lse   读文件   pos   else   

当打开一个不存在的文件名,那会导致读文件出现错误,导致程序崩溃。

为了避免类似问题,我们需要进行判断:

//open file
CFile file;
file.Open("ReadMe.txt", CFile::modeRead,NULL);//open the file

文件打开返回是文件句柄,所以我们不能判断file对象是否存在而是判断句柄是否存在;

    if ((int)file.m_hFile > 0)
    {
        while (file.Read(szbuf, 200))
        {
            n = 0;
            while (szbuf[n])
            {
                InforBuf[index++] = szbuf[n++];
            }
            memset(szbuf, 0, 201);
        }
        file.Close();
        InforBuf[index] = 0;
        CString str = InforBuf;
        pt->str = str;
    }
    else
    {
        pt->str = _T("Can‘t open ReadMe.txt file.");
    }

 file.m_hFile  返回值为0xFFFFFFFF,为异常。

技术图片
//open file
    CFile file;
    file.Open("ReadMe.txt", CFile::modeRead,NULL);//open the file
    if ((int)file.m_hFile > 0)
    {
        while (file.Read(szbuf, 200))
        {
            n = 0;
            while (szbuf[n])
            {
                InforBuf[index++] = szbuf[n++];
            }
            memset(szbuf, 0, 201);
        }
        file.Close();
        InforBuf[index] = 0;
        CString str = InforBuf;
        pt->str = str;
    }
    else
    {
        pt->str = _T("Can‘t open ReadMe.txt file.");
    }
    ::PostMessage(pt->hwnd, WM_RESPONSE, NULL, (LPARAM)pt);
    Sleep(100);
    return 0;
View Code

谢谢.

End.

file.open异常处理

标签:ffffff   hwnd   int   判断   display   lse   读文件   pos   else   

原文地址:https://www.cnblogs.com/lumao1122-Milolu/p/13254115.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!