MFC文件操作

合集下载

mfc readfile函数

mfc readfile函数

MFC(Microsoft Foundation Class)是Microsoft提供的一套用于在Windows操作系统上开发应用程序的类库。

在MFC中,提供了丰富的类和函数来简化Windows程序的开发,其中包括了用于文件操作的一系列函数。

1. MFC中的文件操作MFC中的文件操作主要是通过CFile类来实现的。

CFile类提供了一系列的成员函数来打开、关闭、读取、写入文件,以及获取文件信息等操作。

而其中的ReadFile函数则是用于从文件中读取数据的函数。

2. ReadFile函数的使用ReadFile函数属于CFile类的成员函数,其原型如下:BOOL ReadFile(void* lpBuf, UINT nCount);函数功能是从文件当前指针所指位置开始读取nCount个字节的数据,存放在lpBuf指向的缓冲区中,并将文件指针移动到读取的最后位置。

函数返回值为TRUE代表读取成功,FALSE代表失败。

3. ReadFile函数的参数在使用ReadFile函数时,需要注意其中的两个参数:lpBuf:指向一个缓冲区的指针,读取到的数据将会存放在这个缓冲区中。

nCount:需要读取的字节数。

通过这两个参数,我们可以灵活地控制ReadFile函数的读取行为,实现我们对文件的精确读取。

4. 示例代码下面是一个简单的示例代码,演示了如何使用MFC中的CFile类和ReadFile函数来读取一个文本文件的内容:```CString strFilePath = _T("C:\\test.txt");CFile file;if (file.Open(strFilePath, CFile::modeRead)){int nFileSize = (int)file.GetLength();char* pBuf = new char[nFileSize];file.Read(pBuf, nFileSize);// 输出读取的内容CString strContent = pBuf;AfxMessageBox(strContent);delete[] pBuf;file.Close();}```在这段代码中,首先创建了一个CFile对象file,并使用Open函数打开了一个名为test.txt的文本文件。

mfc cfile用法

mfc cfile用法

mfc cfile用法
MFC的CFile类是一个用于文件输入输出操作的核心类之一。

它提供了一系列的方法,用于打开、关闭、读取、写入和定位文件内的数据。

首先,我们需要创建一个CFile对象来表示我们想要操作的文件。

可以通过构造函数来实现,例如:
CFile myFile;
然后,我们可以使用Open方法来打开文件。

这个方法需要指定文件名以及打开的模式(如读取、写入、追加等)。

例如:myFile.Open(L"myfile.txt", CFile::modeRead);
读取文件内容可以使用Read方法。

该方法需要指定一个缓冲区和希望读取的字节数。

例如,我们可以创建一个大小为100的字符数组,来读取文件中的数据:
char buffer[100];
myFile.Read(buffer, 100);
写入文件内容可以使用Write方法。

该方法需要指定一个缓冲区和希望写入的字节数。

例如,我们可以将一个字符串写入文件中:char* str = "Hello, world!";
myFile.Write(str, strlen(str));
最后,我们需要关闭文件来释放资源。

可以使用Close方法来实现:
myFile.Close();
除了上述基本的文件操作外,CFile还提供了其他一些有用的方法,比如Seek用于文件指针的定位、GetLength用于获取文件的长度等。

总之,通过使用MFC的CFile类,我们可以方便地进行文件的读写操作。

希望这篇文章能帮助您快速了解和掌握CFile的用法。

MFC文件读写操作

MFC文件读写操作

MFC⽂件读写操作1、相关类 CFile类 -封装了⽂件句柄以及操作⽂件的API函数 CFileFind类 -封装了⽂件搜索功能2、CFile类的使⽤ 2.1⽂件读写 1)创建或者打开⽂件 CFile::Open virtual BOOL Open( LPCTSTR lpszFileName, UINT nOpenFlags, CFileException* pError = NULL ); lpszFileName:指定⽂件的名称; nOpenFlags:指定⽂件共享和访问的⽅式,包括: CFile::modeCreate --创建新⽂件,如果该⽂件已存在,则将它的长度截断为0; CFile::modeNoTruncate --与CFile::modeCreate合⽤,如果要创建的⽂件已存在,它的长度不会被截断; CFile::modeRead --打开⽂件,仅⽤于读操作; CFile::modeReadWrite --打开⽂件,可读可写; CFile::modeWrite --打开⽂件,仅⽤于写操作; CFile::modeNoInherit --禁⽌⼦进程继承该⽂件; CFile::shareDenyNone --打开⽂件,同时并不拒绝其他进程对该⽂件的读取和写⼊访问;如果该⽂件已经被其他进程以兼容模式打开,则函数调⽤失败; CFile::shareDenyRead --打开⽂件,并拒绝其他进程对该⽂件的读取访问; CFile::shareDenyWrite --打开⽂件,并拒绝其他进程对该⽂件的写⼊访问; CFile::shareExclusive --以独占模式打开,拒绝其他进程对该⽂件的读取和写⼊访问; CFile::typeText --设置⽂本模式,带有⼀对回车换⾏字符; CFile::typeBinary --设置⼆进制模式; 2)⽂件读写 CFile::Read virtual UINT Read( void* lpBuf, UINT nCount ); lpBuf:指向⽤来接收从⽂件中读取的数据的缓冲区的指针; nCount:要从⽂件中读取的最⼤字节数; CFile::Write virtual void Write( const void* lpBuf, UINT nCount ); lpBuf:指向将要被写⼊⽂件的数据; nCount:将要写⼊的数据的字节数; CFile::Flush --刷新缓冲区中的数据并将其写⼊磁盘⽂件中 virtual void Flush(); 3)关闭⽂件 CFile::Close() virtual void Close(); 2.2⽂件长度的获取和设置 CFile::GetLength() CFile::SetLength(ULONGLONG dwLen) //⽂件会响应地被扩展或截取 2.3⽂件的指针 CFile::GetPosition() --获得当前⽂件指针的位置 virtual DWORD GetPosition( ) const; CFile::Seek virtual LONG Seek( LONG lOff, UINT nFrom ); lOff:将移动⽂件指针多少个字节数; nFrom:移动⽂件指针的起始位置,包括: CFile::begin CFile::current CFile::end CFile::SeekToBegin() //将⽂件指针移到⽂件开头 CFile::SeekToEnd() //将⽂件指针移到⽂件末尾 2.4⽂件相关属性的读取和设置 1)CFile::GetStatus //获取⽂件的属性信息,成功返回⾮0,失败返回0 Bool GetStatus([LPCTSTR strFileName,]CFileStatus& Status) CFileStatus结构有以下字段: CTime m_ctime --⽂件创建的时间 CTime m_mtime --⽂件最后⼀次修改的时间 CTime m_atime --最后⼀次访问⽂件并读取的时间 LONG m_size --⽂件逻辑长度,以字节数表⽰ BYTE m_attribute --⽂件属性 m_attribute的值包括:normal=0x00 | readOnly=0x01 | hidden=0x02 | system=0x04 | volume=0x08 | directory=0x10 | archive=0x20 Char m_szFullName[_MAX_PATH] --Windows字符集表⽰的全⽂件名 2)CFile::SetStatus //设置⽂件属性信息 SetStatus(LPCTSTR strFileName,CFileStatus& Status) 3)CFile::GetFileName() //获取⽂件名称,包含扩展名(即使被隐藏) 4)CFile::GetFileTitle() //获取⽂件显⽰名称(若系统默认隐藏⽂件扩展名,则不包含扩展名) 5)CFile::GetFilePath() //获取⽂件绝对路径 6)CFile::SetFilePath(strNewFilePathName) 7)CFile::Rename(strOldFileName,strNewFileName) //重命名⽂件,可以利⽤此函数移动⽂件到新的路径下并重命名 8)CFile::Remove(strFileName) //删除指定路径⽂件,可以是相对路径、绝对路径 注意:1、⽂件读写需要异常处理 2、注意⽂件的指针位置 例: if (GetFileAttributes("./1.txt") != INVALID_FILE_ATTRIBUTES) //检测⽂件是否存在{ CFile file; file.Open("1.txt", CFile::modeCreate | CFile::modeWrite);//file.Write("hello world!", strlen("hello world!"));CString str="hello world!";int strLen=str.GetLength(); file.Write(str, strLen); file.Close();}CFile file;if(file.Open("1.txt", CFile::modeRead)){ char *pBuf; DWORD dwFileLen; dwFileLen = file.GetLength(); pBuf = new char[dwFileLen + 1]; pBuf[dwFileLen] = 0; file.Read(pBuf, dwFileLen); file.Close(); MessageBox(pBuf); delete[] pBuf; }3、CFileFind类的使⽤ 3.1开始查找(指定查找的⽬录) CFileFind::FindFile(strFileName,0); //strName为要查找的⽂件名,为NULL表⽰查找“*.*” 成功返回⾮0,失败返回0 3.2查找下⼀个(获取当前⽂件信息,返回下⼀个⽂件是否存在) CFileFind::FindNextFile(); //返回⾮0表⽰还有符合条件的下⼀个⽂件,返回0表⽰已是最后⼀个⽂件 3.3获取/判断⽂件信息 CFileFind::GetCreationTime(); //获取⽂件的创建时间,成功返回⾮0,失败返回0 virtual BOOL GetCreationTime(FILETIME *pFileTime) const; //FILETIME*:容纳时间的结构指针 virtual BOOL GetCreationTime(CTime& refTime) const; //CTime&:容纳时间的对象地址 FILETIME和CTime的相互转换: FILETIME转CTime: 1、CTime对象在初始化时可以传递FILETIME结构 FILETIME ft; CTime time(ft); 2、将FILETIME转换为SYSTEMTIME,然后CTime对象在初始化时可以传递SYSTEMTIME结构 FILETIME ft; SYSTEMTIME st; BOOL bSuccess=::FileTimeToSystemTime(&ft , &st); CTime time(st); CTime转FILETIME: CTime time(CTime::GetCurrentTime()); SYSTEMTIME st; time.GetAsSystemTime(st); FILETIME ft; ::SystemTimeToFileTime(&st,&ft); CFileFind::GetLastAccessTime(); //获取⽂件最后被访问的时间,成功返回⾮0,失败返回0 virtual BOOL GetLastAccessTime(FILETIME *pFileTime) const; virtual BOOL GetLastAccessTime(CTime& refTime) const; CFileFind::GetLastWriteTime(); //获取⽂件最后被修改的时间,成功返回⾮0,失败返回0 virtual BOOL GetLastWriteTime(FILETIME *pFileTime) const; virtual BOOL GetLastWriteTime(CTime& refTime) const; CFileFind::GetRoot(); //获取查找到的⽂件的根⽬录,必须在执⾏FindNextFile()后执⾏该函数,返回CString对象 CFileFind::GetFileName(); //获取查找到的⽂件的全名(包含扩展名),必须在执⾏FindNextFile()后执⾏该函数,返回CString对象 CFileFind::GetFilePath(); //获取查找到的⽂件的绝对路径,必须在执⾏FindNextFile()后执⾏该函数,返回CString对象 CFileFind::GetFileTitle(); //获取查找到的⽂件的名称(若系统默认隐藏⽂件扩展名则不显⽰),必须在执⾏FindNextFile()后执⾏该函数,返回CString对象 CFileFind::GetFileURL(); //获取查找到的⽂件的URL路径,必须在执⾏FindNextFile()后执⾏该函数,返回CString对象 CFileFind::GetLength(); //获取查找到的⽂件的长度DWORD CFileFind::IsArchived(); //判断查找的⽂件属性是否是档案⽂件,必须在执⾏FindNextFile()后执⾏该函数,⾮0表⽰是,0表⽰不是 CFileFind::IsCompressed(); //判断查找的⽂件属性是否是压缩⽂件,必须在执⾏FindNextFile()后执⾏该函数 CFileFind::IsDirectory(); //判断查找的⽂件属性是否为路径⽂件(⽂件夹),必须在执⾏FindNextFile()后执⾏该函数 CFileFind::IsDots(); //判断查找的⽂件属性是否是“.”、“..”,必须在执⾏FindNextFile()后执⾏该函数 CFileFind::IsHidden(); //判断查找的⽂件属性是否为隐藏⽂件,必须在执⾏FindNextFile()后执⾏该函数 CFileFind::IsNormal(); //判断查找的⽂件属性是否为正常⽂件,必须在执⾏FindNextFile()后执⾏该函数 CFileFind::IsReadOnly(); //判断查找的⽂件属性是否为只读⽂件,必须在执⾏FindNextFile()后执⾏该函数 CFileFind::IsSystem(); //判断查找的⽂件属性是否为系统⽂件,必须在执⾏FindNextFile()后执⾏该函数 CFileFind::IsTemporary(); //判断查找的⽂件属性是否为临时⽂件,必须在执⾏FindNextFile()后执⾏该函数 CFileFind::MatchesMask(DWORD dwMask); //判断查找的⽂件的综合属性,必须在执⾏FindNextFile()后执⾏该函数 dwMask参数包括: FILE_ATTRIBUTE_ARCHIVE:档案⽂件 FILE_ATTRIBUTE_COMPRESSED:压缩⽂件 FILE_ATTRIBUTE_DIRECTORY:路径⽂件 FILE_ATTRIBUTE_NORMAL:正常⽂件 FILE_ATTRIBUTE_READONLY:只读⽂件 FILE_ATTRIBUTE_SYSTEM:系统⽂件 FILE_ATTRIBUTE_TEMPORARY:临时⽂件 FILE_ATTRIBUTE_HIDDEN:隐藏⽂件 3.4结束查找 CFileFind::Close();CFileFind fFinder;BOOL bFind = fFinder.FindFile(TEXT("D:/*.*"));while (bFind){bFind = fFinder.FindNextFile();//当前⽂件夹及上层⽂件夹(名称分别为..)-----------------if (fFinder.IsDots()){continue;}//⼦⽂件夹---------------------------------------------if(fFinder.IsDirectory()){CString cstrDirName = fFinder.GetFileName(); //directory nameCString cstrDirPath = fFinder.GetFilePath(); //directory pathcontinue;}//⽂件-------------------------------------------------CString cstrFileName = fFinder.GetFileName(); //file nameCString cstrFilePath = fFinder.GetFilePath(); //file path}fFinder.Close(); 相关问题: CFileFind 类中返回的⽂件顺序与⽂件系统有关,如果是NTFS和CDFS⽂件系统,是以⽂件的字母顺序排列的,FAT⽂件系统下,是以⽂件增加的先后顺序排列的,⽽不是按字母顺序。

mfc使用教程

mfc使用教程

mfc使用教程MFC使用教程不要标题MFC是Microsoft Foundation Class的缩写,是一套C++的库,用于开发Windows平台的应用程序。

以下是一个简单的MFC使用教程,帮助你了解如何创建一个基本的MFC应用程序。

首先,打开Visual Studio并选择创建新项目。

在项目模板中,选择"MFC应用程序"。

在下一步中,选择"对话框"作为应用程序类型。

接下来,选择项目的名称和位置,然后点击"完成"按钮。

Visual Studio将自动生成一个MFC应用程序的基本框架。

应用程序的主要代码位于"MainFrm.cpp"和"MainFrm.h"文件中。

打开"MainFrm.cpp"文件,你将看到一个名为"Create"的函数。

在这个函数中,可以创建应用程序的主窗口。

在"Create"函数的内部,使用"MFC应用程序向导"提供的函数来创建一个对话框。

例如,可以使用"CDialogEx"类来创建一个简单的对话框。

在"Create"函数的最后,需要调用"ShowWindow"函数显示主窗口,并调用"UpdateWindow"函数来更新窗口。

在"MainFrm.h"文件中,你可以定义应用程序的主窗口类。

例如,可以继承自"CFrameWnd"类,并添加自定义的成员变量和函数。

在"MainFrm.cpp"文件的"Create"函数中,还可以添加一些自定义的代码,例如设置窗口的标题和大小,添加菜单和工具栏等。

最后,编译并运行应用程序。

你应该能够看到一个简单的MFC应用程序的窗口。

MFC中文件操作

MFC中文件操作

一、C语言的文件操作通过FILE结构体实现。

1、文件的打开C语言中对文件进行操作必须首先打开文件,打开文件主要涉及到fopen函数。

fopen函数的原型为FILE*fopen(const char*path,const char*mode)示例:FILE*pFile=fopen(“1.txt”,”w”);其中path为文件路径,mode为打开方式。

1)对于文件路径,只需注意若未明确给出绝对路径,则默认该文件在工程的目录下。

若需给出绝对路径,则注意转义字符'\',比如有文件test.txt存放在C 盘根目录下,则文件路径参数值应为C:\\test.txt。

2)对于mode,主要由r,w,a,+,b,t六个字符组合而成。

r:只读方式,文件必须存在;w:只写方式,若文件存在,则原有内容会被清除;若文件不存在,则会建立文件;a:追加方式打开只写文件,只允许进行写操作,若文件存在,则添加的内容放在文件末尾;若不存在,则建立文件;+:可读可写;b:以二进制方式打开文件;t:以文本方式打开文件(默认方式下以文本方式打开文件)。

下面是常见的组合:r:以只读的方式打开文件,只允许读,此文件必须存在,否则返回NULL,打开成功后返回文件指针,位置指针指向文件头部;r+:以可读可写的方式打开文件,允许读写,此文件必须存在,否则返回NULL,打开成功后返回文件指针,位置指针指向文件头部;rb+:以可读可写、二进制方式打开文件,允许读写,此文件必须存在,否则返回NULL,打开成功后返回文件指针,位置指针指向文件头部;rt+:以可读可写、文本方式打开文件,允许读写,此文件必须存在,否则返回NULL,打开成功后返回文件指针,位置指针指向文件头部;w:以只写的方式打开文件,只允许写,若文件存在,文件中原有内容会被清除;若文件不存在,则创建文件,打开成功后返回文件指针,位置指针指向文件头部;w+:以读写的方式打开文件,允许读写,若文件存在,文件中原有内容会被清除;若文件不存在,则创建文件,打开成功后返回文件指针,位置指针指向文件头部;a:以追加、只写的方式打开文件,只允许写。

c++ MFC中的文件读写操作

c++ MFC中的文件读写操作

由于要写个游戏工具方便编程,要用到文件类的操作,看到这篇文章不错,特转载计算机室如何管理自身所存放着的大量的信息的呢?windows的磁盘管理程序为我们提供了一套严密而又高效的信息组织形式--硬盘上的信息是以文件的形式被管理的。

面向存储的文件技术什么是文件?计算机中,一篇文章、一幅图片、一个程序等都是以文件的形式存储在磁盘上的,每个文件都有一个文件名。

计算机就是对文件按名存取的。

文件名的格式如下:主文件名.扩展名。

为什么要在程序中使用文件?通常,程序中的数据在程序运行结束之后,就会从内存中清除,再次运行程序时不会自动出现。

在编制程序的过程中不可避免的会遇到将某些数据永久保存的问题,当程序关闭后,依然可以使用这些数据,这时就需要进行文件操作。

文件类型Visual C++处理的文件通常分为两种:文本文件:只可被任意文本编辑器读取ASCII文本。

二进制文件:指对包含任意格式或无格式数据的文件的统称。

这里只介绍文本文件的读写,INI文件也属于文本文件的范畴,且INI文件的结构和用途与普通的文本文件不同,所以会单独介绍。

第一部分:文本文件文本文件的读写认识CFile类;认识文本文件;能够正确灵活应用文本文件存取信息;避免文本文件读写的常见误区。

CFile是MFC的文件操作基本类,它直接支持无缓冲的二进制磁盘I/O操作,并通过其派生类支持文本文件、内存文件和socket文件。

客户操作记录实例功能预览及关键知识点许多系统,出于安全或其他原因,常常要求随时对键盘进行监控,利用Hook(钩子)技术编写的应用程序能够很好地达到这个目的。

本软件就制作了一个客户操作记录软件,即在软件运行过程中,用户在键盘上的按键操作会被记录下来,这样对维护软件的正常运行非常有利。

只要启动客户操作记录软件后,不管输入焦点是否在本软件上,按键都会被记录下来。

我们需要的是键盘的系统监控,只要本软件在运行,无论当前计算机在做什么,都能监测到用户按键的行为并做出反应,这就要用到Hook技术。

mfc文件操作CFile类之创建文件的方法

mfc文件操作CFile类之创建文件的方法

mfc⽂件操作CFile类之创建⽂件的⽅法mfc⽂件操作类CFileCFile类的⼏种构造函数CFile();//不带参数的构造函数。

CFile(int hFile);//带⽂件句柄参数的构造函数。

CFile(LPCTSTR lpszFileName,//要打开的⽂件路径UINT nOpenFlage //打开⽂件时的共享和访问模式);//带⽂件路径和打开⽅式的构造函数除了⽤构造函数打开⽂件外还可以⽤CFile类的成员函数Open来打开OPen函数原型virtual BOOL Open(LPCTSTR lpszFilename,//打开⽂件的路径,可以是绝对路径,也可以是相对路径。

UINT nOpenFlags, //打开⽂件时的共享和访问模式。

CFileException *pError=NULL//打开⽂件的异常捕获变量);CFile构造函数和CFile成员函数Open的参数nOpenFlage 可以是以下任意组合(使⽤位或|组合):CFile::modeCreate新建⽂件,如果⽂件已存在,则清空⽂件长度。

CFile::modeNotruncate与modeCreate组合使⽤。

如果创建的⽂件已经存在,则打开已存在的⽂件,不存在则新建⽂件。

CFile::modeRead以只读⽅式打开⽂件。

CFile::modeWrite以只写⽅式打开⽂件。

CFile::modeNoInherit阻⽌⽂件从⼦进程中继承。

CFile::shareDenyNone共享读写的打开⽂件。

CFile::shareDenyRead排它读权限打开⽂件。

CFile::shareDenyWrite排它写权限打开⽂件。

CFile::shareExclusive排它模式打开⽂件。

CFile::typeText⽂本模式打开⽂件。

CFile::typeBinary⼆进制以写模式打开该⽂件。

创建⽂件并打开⽰例:void CMFCApplication42Dlg::OnBnClickedButton1(){// TODO: 在此添加控件通知处理程序代码CString filename = _T("C:\\Users\\Administrator\\Desktop\\test.txt"); //定义⽂件名TRY //异常处理{CFile f(filename, CFile::modeCreate | CFile::modeWrite);}CATCH (CFileException, e)//异常触发{#ifdef _DEBUG //如果是调试模式afxDump << "打开⽂件失败" << e->m_cause << "\n";#endif}END_CATCH}总结以上所述是⼩编给⼤家介绍的mfc⽂件操作CFile类之创建⽂件的⽅法,希望对⼤家有所帮助,如果⼤家有任何疑问欢迎给我留⾔,⼩编会及时回复⼤家的!。

使用MFC操作EXCEL文件

使用MFC操作EXCEL文件

使用MFC操作EXCEL文件一、加载1、在VC6.0里创建一个MFC工程2、打开MFCClassWizard窗口(查看—>建立类向导),选择Automation,单击AddClass按钮,选择Froma type library...,弹出文件选择对话框,之后定位到C:\ProgramFiles\MicrosoftOffice\OFFICE11\EXCEL.EXE,在生成类中添加所有的对象(其实添加需要的即可,为了简便,不出错保留了冗余),如下图。

void CTestExcelDlg::OnButton1(){//Workbooks—>Workbook —>Worksheets—>Worksheet —>Range _Application app; //Excel应用程序接口Workbooks books; //工作薄集合_Workbook book; //工作薄Worksheets sheets; //工作表集合_Worksheet sheet; //工作表Range range; //Excel中针对单元格的操作都应先获取其对应的Range对象Font font;Range cols;/*COleVariant类为VARIANT数据类型的包装,在自动化程序中,通常都使用VARIANT数据类型进行参数传递。

故下列程序中,函数参数都是通过COleVariant类来转换了的。

*///covOptional 可选参数的VARIANT类型COleVariant covOptional((long)DISP_E_PARAMNOTFOUND, VT_ ERROR);if( !app.CreateDispatch("Excel.Application") ){this->MessageBox("无法创建Excel应用!");return;}//获取工作薄集合books=app.GetWorkbooks();//添加一个工作薄book=books.Add(covOptional);//获取工作表集合sheets=book.GetSheets();//获取第一个工作表sheet=sheets.GetItem(COleVariant((short)1));//选择工作表中A1:A1单元格区域range=sheet.GetRange(COleVariant("A1"),COleVariant("A1" ));//设置A1=HELLO EXCEL!"range.SetValue(COleVariant("HELLO EXCEL!"));//调整格式,设置粗体font=range.GetFont();font.SetBold(COleVariant((short)TRUE));//选择A2单元格,插入一个公式"=RAND()*100000",并设置A2数字格式为货币形式range=sheet.GetRange(COleVariant("A2"),COleVariant("A2" ));range.SetFormula(COleVariant("=RAND()*100000"));range.SetNumberFormat(COleVariant("$0.00"));//选择A:A列,设置宽度为自动适应cols=range.GetEntireColumn();cols.AutoFit();//显示Excel表格,并设置状态为用户可控制app.SetVisible(TRUE);app.SetUserControl(TRUE);2. 打开一个已有的excel表格实例[cpp]view plaincopyCString strPath;strPath += "C:\\template.xlt"; // 模板的路径CFileFind filefind;if( !filefind.FindFile( strPath ) ){AfxMessageBox( "没有找到模版文档,请其查找" );return;}LPDISPATCH lpDisp; //接口指针books=app.GetWorkbooks();lpDisp = books.Open(m_filepath,covOptional, covOptional, covOptional, covOptional, covOptional, covOptional, covOptional, covOptional, covOptional, covOptional, covOptional, covOptional, covOptional, covOptional); //与的不同,是个参数的,直接在后面加了两个covOptional成功了book.AttachDispatch(lpDisp);3. 保存一个excel文件实例[cpp]view plaincopy1.book.SetSaved(TRUE);4. 另存一个excel文件实例[cpp]view plaincopy1.book.SaveAs(COleVariant(m_filename),covOptional,2. covOptional,covOptional,3. covOptional,covOptional,(long)0,4.covOptional,covOptional,covOptional,5.covOptional,covOptional); //与的不同,是个参数的,直接在后面加了两个covOptional成功了5. 释放一个excel文件实例经试验证实,不释放第二次使用excel时会中断,放在类的析构里面有时调用不到,主动调用最保险。

MFC文件操作

MFC文件操作

MFC文件操作1.文件的查找当对一个文件操作时,如果不知道该文件是否存在,就要首先进行查找。

MFC中有一个专门用来进行文件查找的类CFileFind,使用它可以方便快捷地进行文件的查找。

CString strFileTitle;CFileFind finder;bool bWork=finder.FindFile("C:\\windows\\sysbkup\\*.cab"); while(bWorking){bWorking=finder.FindNextFile();strFileTitle=finder.GetFileTitle();}2.文件的打开/保存对话框让用户选择文件进行打开和存储操作时,就要用到文件打开/保存对话框。

MFC的类CFileDialog用于实现这种功能。

使用CFileDialog声明一个对象时,第一个BOOL型参数用于指定文件的打开或保存,当为TRUE时将构造一个文件打开对话框,为FALSE时构造一个文件保存对话框。

在构造CFileDialog对象时,如果在参数中指OFN_ALLOWMULTISELECT 风格,则在此对话框中选择多个文件。

此时要重点注意为CFileDialog 对象的m_ofn.lpstrFile分配一块内存,用于存储多选操作所返回的所有文件路径名,如果不进行分配或分配的内存过小就会导致操作失败。

CFileDialog dlg(TRUE, NULL, "*.*",OFN_HIDEREADONLY |OFN_ALLOWMULTISELECT, "Data files (*.dat;*.fbf)|*.dat;*.fbf||",this);dlg.m_ofn.lStructSize = 88;dlg.m_ofn.lpstrFile = new TCHAR[64000];memset(dlg.m_ofn.lpstrFile,0,64000);dlg.m_ofn.nMaxFile = 64000;POSITION mPos=mFileDlg.GetStartPosition();Cstring pathName;while(mPos!=NULL){pathName=mFileDlg.GetNextPathName(mPos);}CFileDialog 用于取文件名的几个成员函数:假如选择的文件是C:\WINDOWS\TEST.EXE(1)GetPathName();取文件名全称,C:\WINDOWS\TEST.EXE(2)GetFileTitle();取文件全名:TEST.EXE(3)GetFileName();取回TEST(4)GetFileExt();取扩展名EXE3.文件的读写1.打开/创建文件CFile file;file.Open(_T("test.txt"),CFile::modeCreate|CFile::modeNoTru ncate|CFile::modeReadWrite);文件打开模式可组合使用,用“|”隔开,常用的有以下几种:CFile::modeCreate:以新建方式打开,如果文件不存在,新建;如果文件已存在,把该文件长度置零,即清除文件原有内容。

MFC文件操作

MFC文件操作
char buf[100];
file.Read(buf,100);
MessageBox(buf);
}
2. 文本文件和二进制文件的区别:
文件文件是一种特殊的二进制文件,当它遇到回车键10时,写入文件时会自动地在它的前面加一个13,而读出文件时遇到13 10 的组合时,又把它还原到10。而二进制文件就是把数据原封不动的写入文件,原封不动的再读取出来,没有文本文件的这种转换操作。
CFile::modeNoTruncate);
f.SeekToEnd();
f.Write("hello",5);
//file.Close();如果我不关闭的话,其析构函数会为我关闭。
II. 读文件:
CFile f("c:\\1.txt",CFile::modeRead);
ofs.write("猎狐网络",sizeof("猎狐网络"));
ofs.close();//最好自己将文件关掉,不关也行,这个filebuf对象的析构函数为你关。
读:
ifstream ifs("c:\\1.txt");
char buf[100];
ifs.read(buf,100);
读取一行文本到缓冲区,遇到“0x0D,0x0A”时停止读取,并且去掉硬回车“0x0D”,保留换行符“0x0A”,在字符串末尾添加“\0”(0x00)。nMax个字符里包含0x00这个字符。分析如下:
1)如果nMax <= 字符数,读取(nMax-1)个字符 + 0x00
2)如果nMax = 字符数 + 1,读取nMax个字符 + 0x00

基于MFC的大型数据文件处理方法

基于MFC的大型数据文件处理方法

基于MFC的大型数据文件处理方法1. 使用MFC的CFile类进行文件操作:CFile类提供了一系列的方法用于打开、读取、写入和关闭文件。

在处理大型数据文件时,可以使用该类来读取和写入文件数据。

首先,使用CFile::Open方法打开文件。

然后,使用CFile::Read和CFile::Write方法读取和写入数据。

最后,使用CFile::Close方法关闭文件。

2. 使用MFC的CStdioFile类进行文件处理:CStdioFile类是CFile 类的派生类,提供了一些更高级的文件读写方法。

使用CStdioFile类可以通过一行一行的方式读取和写入文件数据。

通过使用CStdioFile::ReadString方法可以一次读取一行字符串数据,使用CStdioFile::WriteString方法可以一次写入一行字符串数据。

3. 使用MFC的CRecordset类进行数据库操作:如果大型数据文件中的数据是结构化的,并且可以使用SQL查询语句进行读取和写入,那么可以使用CRecordset类来进行数据库操作。

CRecordset是一个用于操作数据库记录集的类,可以通过它执行SQL语句并获取结果。

首先,使用MFC 的数据库类(如CDatabase)建立一个数据库连接。

然后,使用CRecordset::Open方法打开数据表,并使用CRecordset::GetFieldValue 方法获取字段值。

4. 使用MFC的CFileDialog类进行文件选择:在大型数据文件处理中,通常需要选择输入或输出的文件。

MFC提供了CFileDialog类来方便用户选择文件。

使用CFileDialog::DoModal方法可以弹出一个文件选择对话框,让用户选择文件,然后使用CFileDialog::GetPathName方法获取用户选择的文件路径。

5. 使用MFC的CFileFind类进行文件查找:如果需要在一个目录中批量处理大量的数据文件,可以使用CFileFind类进行文件查找。

MFC文件夹打开的操作

MFC文件夹打开的操作
if (SUCCEEDED(SHGetMalloc(&pMalloc)) && pMalloc)
{
pMalloc->Free(pidl);
pMalloc->Release();
}
}
m_FileDir = szFolder;//选择的文件夹路径
CEdit* cfolder;
cfolder = (CEdit*) GetDlgItem(flidersdit);
str1 = dlg.GetFileName();
CEdit* cfolder;
cfolder = (CEdit*) GetDlgItem(flidersdit);
cfolder->SetWindowText(str1);
// + 1
}
效果图
3,打开文件夹,选择所选择的文件夹,获取文件夹的路径
cfolder->SetWindowText(str);
// + 1
}
效果图
CFileDialog dlg(TRUE,NULL,NULL,NULL,NULL);
if(dlg.DoModal()==IDOK)//
{
CString str,str1;
str = dlg.GetPathName();
cfolder->SetWindowText(szFolder);
OnPaint();
TRACE("\n&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&\n");

MFCCFile类操作文件的方法

MFCCFile类操作文件的方法

MFCCFile类操作文件的方法当把结构逐个写入硬盘文件时,注意,结构中不能包含string变量类型,因为,string是不定长的变量类型。

应使用char xx[90]形式的变量,文件操作API和CFile类在VC中,操作文件的方法有两种,一是利用一些API函数来创建,打开,读写文件,另外一个是利用MFC的CFile类,CFile封装了对文件的一般操作。

下面酒主要介绍如何利用这两种方法操作文件。

1.创建或打开一个文件API函数CreateFile可打开和创建文件、管道、邮槽、通信服务、设备以及控制台,但是在此时只是介绍用这个函数怎么实现创建和打开一个文件。

HANDLE CreateFile(LPCTSTR lpFileName, // 要打开的文件名DWORD dwDesiredAccess, // 文件的操作属性DWORD dwShareMode, // 文件共享属性LPSECURITY_ATTRIBUTES lpSecurityAttributes,// 文件安全特性DWORD dwCreationDisposition, //文件操作DWORD dwFlagsAndAttributes, // 文件属性HANDLE hTemplateFile // 如果不为零,则指定一个文件句柄。

新文件将从这个文件中复制扩展属性);文件的操作属性:如果为零,表示只允许获取与一个设备有关的信息,GENERIC_READ 表示允许对设备进行读访问;如果为GENERIC_WRITE 表示允许对设备进行写访问(可组合使用);文件的共享属性:零表示不共享;FILE_SHARE_READ 或FILE_SHARE_WRITE 表示允许对文件进行读/写共享访问文件的操作有:CREATE_NEW:创建文件;如文件存在则会出错CREATE_ALWAYS:创建文件,会改写前一个文件OPEN_EXISTING:文件必须已经存在。

MFC文件操作2

MFC文件操作2
fileDlg.m_ofn.lpstrDefExt="cjp";//设置缺省扩展名
if(IDOK==fileDlg.DoModal())//用来显示对话框
{
CFile file(fileDlg.GetFileName()/*得到选择的文件名*/,
{
// TODO: add extra initialization before printing
}
void CFileView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: add cleanup after printing
//直接将一个整形数据98341写入文件读取出来将是乱码
int i=98341;
fwrite(&i,4,1,pFile);
//其实在文件中,都是以ASCII码写入的,
//可以将作为一个字符串保存到文件
CString str="98341";
#include <fstream.h>
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
HANDLE hFile;
//用CreateFile创建文件
hFile = CreateFile("useAPI.txt",GENERIC_WRITE,

MFC中的文件读写操作

MFC中的文件读写操作

由于要写个游戏工具方便编程,要用到文件类的操作,看到这篇文章不错,特转载计算机室如何管理自身所存放着的大量的信息的呢?windows的磁盘管理程序为我们提供了一套严密而又高效的信息组织形式--硬盘上的信息是以文件的形式被管理的。

面向存储的文件技术什么是文件?计算机中,一篇文章、一幅图片、一个程序等都是以文件的形式存储在磁盘上的,每个文件都有一个文件名。

计算机就是对文件按名存取的。

文件名的格式如下:主文件名.扩展名。

为什么要在程序中使用文件?通常,程序中的数据在程序运行结束之后,就会从内存中清除,再次运行程序时不会自动出现。

在编制程序的过程中不可避免的会遇到将某些数据永久保存的问题,当程序关闭后,依然可以使用这些数据,这时就需要进行文件操作。

文件类型Visual C++处理的文件通常分为两种:文本文件:只可被任意文本编辑器读取ASCII文本。

二进制文件:指对包含任意格式或无格式数据的文件的统称。

这里只介绍文本文件的读写,INI文件也属于文本文件的范畴,且INI文件的结构和用途与普通的文本文件不同,所以会单独介绍。

第一部分:文本文件文本文件的读写认识CFile类;认识文本文件;能够正确灵活应用文本文件存取信息;避免文本文件读写的常见误区。

CFile是MFC的文件操作基本类,它直接支持无缓冲的二进制磁盘I/O操作,并通过其派生类支持文本文件、内存文件和socket文件。

客户操作记录实例功能预览及关键知识点许多系统,出于安全或其他原因,常常要求随时对键盘进行监控,利用Hook(钩子)技术编写的应用程序能够很好地达到这个目的。

本软件就制作了一个客户操作记录软件,即在软件运行过程中,用户在键盘上的按键操作会被记录下来,这样对维护软件的正常运行非常有利。

只要启动客户操作记录软件后,不管输入焦点是否在本软件上,按键都会被记录下来。

我们需要的是键盘的系统监控,只要本软件在运行,无论当前计算机在做什么,都能监测到用户按键的行为并做出反应,这就要用到Hook技术。

MFC中文件操作、查找与选择总结

MFC中文件操作、查找与选择总结

MFC总结(一):MFC中文件操作、查找与选择总结(1)本文主要涉及以下几个方面,均为在MFC编程中较为常用的:CFile操作、CArchive操作、如何选择文件和文件夹、如何查找文件、获取当前目录、_access函数等。

(一)使用CFile类操作文件CFile类在MFC的文件操作中应该是最常用的了。

主要的成员函数有Open、Close、Write、Read、Seek、SeekToEnd、GetLength、GetPosition,具体用法见MSDN。

(1)文件打开操作:文件打开有两种方式,一种是先定义类对象,在用Open函数打开;一种是在定义类对象时传入文件名和打开方式。

分别如下CFile file;if(!file.Open(lpszFileName, nOpenFlags ))return;或CFile file(lpszFileName, nOpenFlags);(2)文件打开方式:文件打开方式,即上述nOpenFlags的值主要由一些宏定义的值组合而成,具体见MSDN,常用的有如下几种:A. CFile::modeCreate | CFile::modeNoTruncate |CFile::modeWrite,以写文件的方式打开,如果文件不存在,则新建文件,否则打开已有文件进行写入操作,此时不会清空原有文件;B. 将上述CFile::modeWrite更换为CFile::modeRead或者CFile::modeReadWrite可实现读操作或者同时读写。

(3)判断文件结束判断文件是否结束,没有结束则继续读取,否则关闭退出。

这点在编程时常用。

对于CFile常用的判断文件结束的方法是:while(file.GetPosition() < file.GetLength()){ //文件未结束//Add code ....}(4)值得注意的几点:A. 当文件名中包含路径时,要注意使用\\,如C:\\MyFile.DAT,在Unicode下时,需要使用_T("C:\\MyFile.DAT");B. 采用(2)中A方式写文件时,注意使用file.SeekToEnd()将文件指针移至文件尾,再写入,否则会覆盖已有的数据,这点经常被很多初学者忽视;C. 在打开文件后就要紧接着写下Close,养成这样的习惯,避免忘记关闭文件。

MFC 文件操做

MFC 文件操做
{ printf("cannot open file!\n");
exit(0);
}
ch=getchar(); /*读scanf的回车符*/
ch=getchar(); /*输入第一个字符*/
while(ch!='#')
{ fputc(ch,fp);
{while(!feof(fp1))
{ ch=fgetc(fp1);
if(ch>='A'&&ch<='Z') ch=ch-'A'+'a';
fputc(ch,fp2);
}
}
fclose(fp1); fclose(fp2);
}
//把一个浮点数组以二进制方式写入文件t中并读出来
for(i=0;i<6;i++)
printf("t[%d]=%5.2f\n",i,t[i]);
}
putchar(ch);
பைடு நூலகம் ch=getchar();
}
fclose(fp);
}
//大小写变换标志
#include <stdio.h>
#include<stdlib.h>
#include <stdio.h>
main()
{ FILE *fp1,*fp2;char ch;
fp=fopen("c:\\rd\\test.dat", "wb");
/*将6个浮点数写入文件中*/
fwrite(f, sizeof(float), 6, fp);

MFC和C++关于文件的读写操作以及文件的打开和保存

MFC和C++关于文件的读写操作以及文件的打开和保存

MFC和C++关于文件的读写操作以及文件的打开和保存通过近来的学习,总结一下关于C++开发中文件的读写操作以及文件的打开和保存的方法。

一、文件的读写操作:(1)C语言对文件的读写操作在C语言中,对文件的读写操作是用FILE结构体和常用的对文件操作的函数实现的,下面总结一下C语言中对文件操作的常用函数:fopen() 打开以文件名指定的文件fwrite() 写文件fread() 读文件fseek() 移动文件的指针到新的位置通过该函数的参数设定的偏移量和初始位置rewind() 移动文件的指针到文件流的开始位置,在通常情况下可用fseek()实现相同的功能,但二者有区别ftell() 获得当前文件指针的位置,常用该函数获得文件的文件流的长度fflush() 刷新缓冲区中的内容,当文件写入时直接将文件流的内容从缓冲区写入磁盘,当读取文件时直接将磁盘文件写入缓冲区,而不必等程序运行结束或关闭程序。

fclose() 关闭文件memset() 在一段内存块中填充某个给定的值示例代码如下:/*********************************************************** C语言实现文件写操作 ************************************************************/FILE *pFile=fopen("CLanguage.txt","w");fwrite("CLanguage",1,strlen("CLanguage"),pFile);//fseek(pFile,0,SEEK_SET);//fwrite("实现文件写操作",1,strlen("实现文件写操作"),pFile);fclose(pFile);/*********************************************************** C语言实现文件读操作 ************************************************************/FILE *pFile=fopen("CLanguage.txt","r");//char ch[100];//memset(ch,0,100);//fread(ch,1,100,pFile);//MessageBox(ch);char* pBuf;int length;fseek(pFile,0,SEEK_END);length=ftell(pFile);pBuf=new char[length+1];//fseek(pFile,0,SEEK_SET);rewind(pFile);fread(pBuf,1,length,pFile);pBuf[length]=0;MessageBox(pBuf);fclose(pFile);注意:在用C语言实现文件的读操作时,要注意文件的指针位置。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

CFile//创建/打开文件CFile file;file.Open(_T("test.txt"),CFile::modeCreate|CFile::modeNoTruncate|C File::modeReadWrite);文件打开模式可组合使用,用“|”隔开,常用的有以下几种:CFile::modeCreate:以新建方式打开,如果文件不存在,新建;如果文件已存在,把该文件长度置零,即清除文件原有内容。

CFile::modeNoTruncate:以追加方式打开,如果文件存在,打开并且不将文件长度置零,如果文件不存在,会抛出异常。

一般与CFile::modeCreate一起使用,则文件不存在时,新建一个文件;存在就进行追加操作。

CFile::modeReadWrite:以读写方式打开文件。

CFile::modeRead:只读。

CFile::modeWrite:只写。

//写入数据CString strValue = "Hello World!";file.Write(strValue,strValue.GetLength());//追加数据file.SeekToEnd(); //将指针移至文件末尾进行追加file.Write(strValue,strValue.GetLength());//关闭文件file.Close();CStdioFileCStdioFile是CFile的派生类,对文件进行流式操作,对于文本文件的读写很有用处,可按行读取写入。

//写入数据CString strValue = "Hello World!";file.WriteString(strValue);//读取数据CString strRead;file.ReadString(strRead);当文件存在多行数据需要逐行读取时,可用函数BOOL CStdioFile::ReadString(CString& rString),当遇到"\n "时读取截断,如果文件未读完,返回true,否则返回false。

//逐行读取文件内容,存入strReadwhile(file.ReadString(strRead)){...;}各种关于文件的操作在程序设计中是十分常见,如果能对其各种操作都了如指掌,就可以根据实际情况找到最佳的解决方案,从而在较短的时间内编写出高效的代码,因而熟练的掌握文件操作是十分重要的。

本文将对Visual C++中有关文件操作进行全面的介绍,并对在文件操作中经常遇到的一些疑难问题进行详细的分析。

1.文件的查找当对一个文件操作时,如果不知道该文件是否存在,就要首先进行查找。

MFC中有一个专门用来进行文件查找的类CFileFind,使用它可以方便快捷地进行文件的查找。

下面这段代码演示了这个类的最基本使用方法。

CString strFileTitle;CFileFind finder;BOOL bWorking =finder.FindFile("C:\\windows\\sysbkup\\*.cab");while(bWorking){bWorking=finder.FindNextFile();strFileTitle=finder.GetFileTitle();}2.文件的打开/保存对话框让用户选择文件进行打开和存储操作时,就要用到文件打开/保存对话框。

MFC的类CFileDialog用于实现这种功能。

使用CFileDialog 声明一个对象时,第一个BOOL型参数用于指定文件的打开或保存,当为TRUE时将构造一个文件打开对话框,为FALSE时构造一个文件保存对话框。

在构造CFileDialog对象时,如果在参数中指定了OFN_ALLOWMULTISELECT风格,则在此对话框中可以进行多选操作。

此时要重点注意为此CFileDialog对象的m_ofn.lpstrFile分配一块内存,用于存储多选操作所返回的所有文件路径名,如果不进行分配或分配的内存过小就会导致操作失败。

下面这段程序演示了文件打开对话框的使用方法。

CFileDialog mFileDlg(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT|OFN_ALLOW MULTISELECT,"All Files (*.*)|*.*||",AfxGetMainWnd());CString str(" ",10000);mFileDlg.m_ofn.lpstrFile=str.GetBuffer(10000);str.ReleaseBuffer();POSITION mPos=mFileDlg.GetStartPosition();CString pathName(" ",128);CFileStatus status;while(mPos!=NULL){pathName=mFileDlg.GetNextPathName(mPos);CFile::GetStatus( pathName, status );}3.文件的读写文件的读写非常重要,下面将重点进行介绍。

文件读写的最普通的方法是直接使用CFile进行,如文件的读写可以使用下面的方法://对文件进行读操作char sRead[2];CFile mFile(_T("user.txt"),CFile::modeRead);if(mFile.GetLength()<2)return;mFile.Read(sRead,2);mFile.Close();//对文件进行写操作CFile mFile(_T("user.txt "),CFile::modeWrite|CFile::modeCreate);mFile.Write(sRead,2);mFile.Flush();mFile.Close();虽然这种方法最为基本,但是它的使用繁琐,而且功能非常简单。

我向你推荐的是使用CArchive,它的使用方法简单且功能十分强大。

首先还是用CFile声明一个对象,然后用这个对象的指针做参数声明一个CArchive对象,你就可以非常方便地存储各种复杂的数据类型了。

它的使用方法见下例。

//对文件进行写操作CString strTemp;CFile mFile;mFile.Open("d:\\dd\\try.TRY",CFile::modeCreate|CFile::modeNoTrun cate|CFile::modeWrite);CArchive ar(&mFile,CArchive::store);ar<<ar.Close();mFile.Close();//对文件进行读操作CFile mFile;if(mFile.Open("d:\\dd\\try.TRY",CFile::modeRead)==0)return;CArchive ar(&mFile,CArchive::load);ar>>strTemp;ar.Close();mFile.Close();CArchive的<< 和>> 操作符用于简单数据类型的读写,对于CObject派生类的对象的存取要使用ReadObject()和WriteObject()。

使用CArchive的ReadClass()和WriteClass()还可以进行类的读写,如://存储CAboutDlg类ar.WriteClass(RUNTIME_CLASS(CAboutDlg));//读取CAboutDlg类CRuntimeClass* mRunClass=ar.ReadClass();//使用CAboutDlg类CObject* pObject=mRunClass->CreateObject();((CDialog* )pObject)->DoModal();虽然VC提供的文档/视结构中的文档也可进行这些操作,但是不容易理解、使用和管理,因此虽然很多VC入门的书上花费大量篇幅讲述文档/视结构,但我建议你最好不要使用它的文档。

关于如何进行文档/视的分离有很多书介绍,包括非常著名的《Visual C++ 技术内幕》。

如果你要进行的文件操作只是简单的读写整行的字符串,我建议你使用CStdioFile,用它来进行此类操作非常方便,如下例。

CStdioFile mFile;CFileException mExcept;mFile.Open( "d:\\temp\\aa.bat", CFile::modeWrite, &mExcept);CString string="I am a string.";mFile.WriteString(string);mFile.Close();4.临时文件的使用正规软件经常用到临时文件,你经常可以会看到C:\Windows\Temp目录下有大量的扩展名为tmp的文件,这些就是程序运行是建立的临时文件。

临时文件的使用方法基本与常规文件一样,只是文件名应该调用函数GetTempFileName()获得。

它的第一个参数是建立此临时文件的路径,第二个参数是建立临时文件名的前缀,第四个参数用于得到建立的临时文件名。

得到此临时文件名以后,你就可以用它来建立并操作文件了,如:char szTempPath[_MAX_PATH],szTempfile[_MAX_PATH];GetTempPath(_MAX_PATH, szTempPath);GetTempFileName(szTempPath,_T ("my_"),0,szTempfile);CFile m_tempFile(szTempfile,CFile:: modeCreate|CFile:: modeWrite);char m_char='a';m_tempFile.Write(&m_char,2);m_tempFile.Close();5.文件的复制、删除等MFC中没有提供直接进行这些操作的功能,因而要使用SDK。

SDK 中的文件相关函数常用的有CopyFile()、CreateDirectory()、DeleteFile()、MoveFile()。

它们的用法很简单,可参考MSDN。

1,判断文件是否存在access(filename,mode);2,对于不同用途又不同的文件操作,其中API函数CreateFile()也是比较有用处理方式,对于巨型文件很合适的其他的楼上的大都说了,不重复了.[1]显示对话框,取得文件名CString FilePathName;CFileDialog dlg(TRUE);///TRUE为OPEN对话框,FALSE为S***E AS 对话框if (dlg.DoModal() == IDOK)FilePathName=dlg.GetPathName();相关信息:CFileDialog 用于取文件名的几个成员函数:假如选择的文件是C:\WINDOWS\TEST.EXE则(1)GetPathName();取文件名全称,包括完整路径。

相关文档
最新文档