cfile(CFILE文本文件类)

http://www.itjxue.com  2023-01-28 04:24  来源:未知  点击次数: 

CFile类如何进行文件操作

if(dlg.DoModal()==IDOK)

FilePathName=dlg.GetPathName();}相关信息:CFileDialog 用于取文件名的几个成员函数:

假如选择的文件是C:\WINDOWS\TEST.EXE

则(1)GetPathName();取文件名全称,包括完整路径。取回C:\WINDOWS\TEST.EXE

(2)GetFileTitle();取文件全名:TEST.EXE

(3)GetFileName();取回TEST

(4)GetFileExt();取扩展名EXE

[2]打开文件

CFile file("C:\HELLO.TXT",CFile::modeRead);///只读方式打开

///CFile::modeRead可改为 CFile::modeWrite(只写),CFile::modeReadWrite(读写),CFile::modeCreate(新建)例子:{CFile file;

file.Open("C:\HELLO.TXT",CFile::modeCreate|Cfile::modeWrite);}[3]移动文件指针

file.Seek(100,CFile::begin);///从文件头开始往下移动100字节

file.Seek(-50,CFile::end);///从文件末尾往上移动50字节

file.Seek(-30,CFile::current);///从当前位置往上移动30字节

file.SeekToBegin();///移到文件头

file.SeekToEnd();///移到文件尾

[4]读写文件读文件:char buffer[1000];

VC 如何使用CFile读取文件内容到CString中

VC使用CFile读取文件内容到CString中,方法是读取每行内容,查找Z,获取后面的数据。具体是:

CString strFileNamePath = "..//xxx.txt";

int nFileNum = 0;

CStdioFile myFile;

CStringArray strPDFFileName;

if(myFile.Open(strFileNamePath,CFile::modeRead))

{

//读取;

CString strLine;

while(myFile.ReadString(strLine))

{

int nPos=strLine.Find(_T("Z"));

CString strFileName = strLine.Mid(nPos+2,1);

strPDFFileName.Add(strFileName);

nFileNum++;

}

myFile.Close();

MFC的CFILE 打开文件为什么老是出错

【问题详细内容】用fopen打开二进制文件,先用wb+,如果成功开始读写,如果失败用rb+打开,然后读写,如果再失败,退出程序,每次失败都会返回GetLastError(),有时候成功,有时候两次都显示错误123。查询后发现123是卷标或路径的语法错误,首先针对的是同一文件,其次用的路径是windows传给我的参数,但是有时会出错,有时不会。是怎么 回事?【解答】检查出错的时候,是不是文件名中有空格,或者有中文。如果是,那么就别用fopen了,用CFile类来代替吧。然后给程序里增加一些调试信息,当出错的时候,把文件名打印出来看看是否正确。发送方用的strlen()+1定义长度,这样可以把字符串尾部的结束符一起发送过去

怎么判断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 API

2、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;}

(责任编辑:IT教学网)

更多

推荐安全技术文章