文件管理 · 2022年9月9日

cfile找不到未命名文件|怎么判断cfile文件是否存在

① c++ CFile类无法打开文件!

CFile file("1.txt",CFile::modeCreate|CFile::modeReadWrite);这个应该这样写CFile file(_T("1.txt"),CFile::modeCreate|CFile::modeReadWrite);VS2003以上默认是unicode的,所以要_T()把字符串包装一下。

② 问一个VC中关于用CFileFind查找文件碰到一个问题!

HANDLE hDeviceT = CreateFile("F:\\测试\\2\\"+FileName, GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL ); GENERIC_READ把这个标记改了GENERIC_WRITE。如果你使用这个句柄进行修改,那么这样就可以了,如果你这边开着,那边重新打开,再用:SHARE_WRITE打开。

③ vc/mfc-如下一段CArchive的代码出现了“没有找到未命名文件”的错误(Release,运行时出错)

有可能因为你使用了相对路径,当前路径应该是debug或者release文件夹,所以相对路径就找不到你指定的文件。

④ CFile打开文件时的错误

可能是因为CBookPath这个文件被其它进程打开了,你用了CFile::shareDenyNone试试把这个去掉,或者确认一下其它进程没打开这个文件

⑤ 怎么判断cfile文件是否存在

最近的项目是对文件操作的,所以,多少都遇到一些关于文件操作的问题.用到最多的还是文件打开,文件读写,判断文件存在否.本文不讨论文件读写,只针对判断文件存在否.记得在C#里,有一个东西,叫做CFile.通过它的方法CFile.Exit(Filename)就可以直接判断文件是否存在,可是在VC里没有这个方法.最开始时,我是通过定义一个文件变量,然后打开一个那个要判断的文件,如果返回0,就表示这个文件不存在.这种方法需要两步,第一步,先定义一个文件类的变量,第二步,用这个变量直接打开一个文件,查看其返回值,如果为0,就表示不存在.这种方法也还是比较简单的,不过这样会浪费一些资源,而且,如果这个文件存在,那还要在判断完后关闭文件,如果不关闭,可能就会出问题.在VC里,有好几个文件类,看你喜欢哪种就用哪种了.我使用的方法代码如下: CStdioFile fileTemp2; if ((fileTemp2.Open(FileName,CFile::modeRead)==0)) { //如果这个文件不存在时 MessageBox(_T("你选择的文件不存在,请重新选择!")); }后来又发现了另一个方法GetFileAttributes,可以直接判断文件是否存在,而不用定义变量等,方法如下:if(GetFileAttributes("C://Test.bmp") == -1){ MessageBox(NULL,_T("文件不存在!"),_T("系统错误"),MB_ICONERROR);}这个方法很好用,建议使用.当然还在其它的方法,我也没试用,因为,好东西有一个就可以了,不过,如果以上的方法不能满足你的要求时,还是可以试下以下的方法(我没有测试,网上找):<1>: CFileFind find;BOOL IsFinded = find.FindFile("C://Test.bmp");if(IsFinded){//存在}else{//不存在}用CFileFind类的FindFile()和FindNextFile函数进行查找,如果搜索完C:/还未找到,就是文件不存在.函数具体用法请参考msdn<2>: 1、BOOL PathFileExists(LPCTSTR lpszPath); SHELL API2、DWORD GetFileAttributes(LPCTSTR lpFileName); API<3>: 1.CFileFind f; (这个就是上面第一种方法)if (f.FindFile(g_szCalFileName,0)){ // 做你的处理}else{ MessageBox("File Not Exsit!","提示",MB_OK+MB_ICONINFORMATION); return;}2.如果要打开文件,可以顺便:CFile file;if(!file.Open(filepath,CFile::modeRead))MessageBox("error");else{file.Close();return;}

⑥ VS 2008 磁盘文件的读写、、very急!!

这个问题我也碰到过,在vc6.0中是不包含unicode字符集的,而在08中,默认生成的MFC是用到unicode字符集的。所以,只要在“解决方案”的项目名字上,右键,属性,把“字符集”这个选型改成“多字节字符集”就OK了,试试吧。呵呵

⑦ VS2005环境下建立win32应用台控制程序,其中使用到了CFile类,没有加头文件,提示error C2065: “CFile”:

afx.h头文件要添加到所有#include之前

⑧ 为什么用File创建文件 打开时说找不到该文件高手看看吧 用VC++写MP3 播放器时遇到的问题

楼主创建文件的时候没指定路径吧

⑨ MFC 中用ShellExecute执行文件后,无法关闭对话框,出现“没有找到 一未命名文件”

voidCShipinDlg::OnScan(){//TODO:UpdateData(TRUE);CFileDialogfileDlg(TRUE);fileDlg.m_ofn.lpstrFilter="AllFiles(*.avi)*.avi";fileDlg.m_ofn.lpstrDefExt="*.avi";//CStringm_open;CStringm_filename;if(IDOK==fileDlg.DoModal()){//CFilefile(fileDlg.GetFileName(),CFile::modeRead);//这是一个无用语句,去掉//m_open=fileDlg.GetPathName();//这个也没用,去掉m_filename=fileDlg.GetFileName();UpdateData(FALSE);}ShellExecute(NULL,"open",m_filename,NULL,"e:\",NULL);}

报错可能是和CFile语句有关

⑩ CFile 打开*.txt “*.txt中包含无效路径"!求解决谢谢!!

因为文件名中不能带星号,你可以建一个文件试试。看你的意思是想打开所有的txt文件?如果是的话,应该先用CFileFind找到所有的txt文件,然后一个一个的打开。