4682|7

81

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

EVC下的文件操作,文件明明存在,但是打开时提示文件不存在????? [复制链接]

建立文件:
void TestWenJian::OnButton2()
{
        // TODO: Add your control notification handler code here
       
        CString strtxt;
       
        if(CreateFile(_T("mytxt.txt"),GENERIC_READ|GENERIC_WRITE,FILE_SHARE_WRITE,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,0))
        {
                MessageBox(_T("文件创建成功"),NULL,MB_OK);
               
        }
}
打开文件:
void TestWenJian::OnOK()
{
        // TODO: Add extra validation here
        CString strtxt;
        m_wenjian.GetWindowText(strtxt);
        int jbbz;
        jbbz=0;
        CFile myfile;
        myfile.Open(_T("mytxt.txt"),CFile::OpenFlags::modeWrite);
}
这是建立和打开的代码,哪里有问题吗??还有就是我发现如果直接将EVC中的文件名复制到程序中可以打开,但是不能先建立,如果建立了也就不能打开了?????

最新回复

直接使用C下的文件打开方式,就简单的多         CString strName,m_sStr;         char c[20];                CFileDialog dlg(FALSE, NULL, _T("NONAME.dat"), OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,                 _T("curve Files(*.dat)|*.dat|Notepad Files(*.txt)|*.txt|All Files(*.*)|*.*|"));                 if(dlg.DoModal()==IDOK)         {                                 strName=dlg.GetPathName();                                 for(int j=0;j  详情 回复 发表于 2008-6-6 08:42
点赞 关注

回复
举报

86

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
在创建的时候调用CreateFile函数了隐含了打开文件,所以在OnButton2中创建完后应该调用关闭文件函数将打开的文件句柄关掉
 
 

回复

61

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
文件名指定错误,CE下必须使用全路径。因为CE没有相对路径这个概念。
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

4
 
2楼正解!
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

5
 
我觉得应该是1楼说的对。

lz没有关闭文件,第二次当然不能打开了。
  1. HANDLE hfile = INVALID_HANDLE_VALUE;
  2. hfile = CreateFile(_T("mytxt.txt"),GENERIC_READ |GENERIC_WRITE,FILE_SHARE_WRITE,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,0);
  3. if(hfile != INVALID_HANDLE_VALUE)
  4. {
  5. MessageBox(_T("文件创建成功"),NULL,MB_OK);

  6. }

  7. CloseHandle(hfile);
复制代码
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

6
 
直接写名字,缺省就在\My Computer\下,没有问题。

问题出在你的建立函数里面,建立了文件,也就打开了文件,你没有关闭,所以你这别的地方再打开时就提示出错了。
我是这么写的,测试了,没有问题。
void CEvcDlg::OnButton1()
{
        // TODO: Add your control notification handler code here
        CString strtxt;
HANDLE hFile;
        if(hFile=CreateFile(_T("mytxt.txt"),GENERIC_READ |GENERIC_WRITE,FILE_SHARE_WRITE,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,0))
        {
                MessageBox(_T("file create success!"),NULL,MB_OK);
                CloseHandle(hFile);
        }
}

void CEvcDlg::OnButton2()
{
        // TODO: Add your control notification handler code here
        //CString strtxt;
        //m_wenjian.GetWindowText(strtxt);
        BOOL bbb;
        int jbbz;
        jbbz=0;
        CFile myfile;
        bbb=myfile.Open(_T("mytxt.txt"),CFile::OpenFlags::modeWrite);
        if(bbb)
                MessageBox(_T("file open success!"),NULL,MB_OK);
}
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

7
 
学习了。。
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

8
 
直接使用C下的文件打开方式,就简单的多
  1.         CString strName,m_sStr;

  2.         char c[20];       

  3.         CFileDialog dlg(FALSE, NULL, _T("NONAME.dat"), OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
  4.                 _T("curve Files(*.dat)|*.dat|Notepad Files(*.txt)|*.txt|All Files(*.*)|*.*|"));
  5.        
  6.         if(dlg.DoModal()==IDOK)
  7.         {
  8.                
  9.                 strName=dlg.GetPathName();
  10.                
  11.                 for(int j=0;j
  12.                 {
  13.                         c[j]=dlg.GetPathName().GetAt(j);
  14.                 }
  15.                
  16.                 c[j]='\0';
  17.                
  18.                 FILE *pFile=fopen(c,"wb");
  19.                
  20.                 if(pFile)
  21.                 {
  22.                  ……}
  23.          }
复制代码
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表