建立文件:
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中的文件名复制到程序中可以打开,但是不能先建立,如果建立了也就不能打开了?????
在创建的时候调用CreateFile函数了隐含了打开文件,所以在OnButton2中创建完后应该调用关闭文件函数将打开的文件句柄关掉
文件名指定错误,CE下必须使用全路径。因为CE没有相对路径这个概念。
直接写名字,缺省就在\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);
}