随笔记录:
1、使用CFile创建、写文件
CFile testfile; testfile.Open("C:\\2.plt",CFile::modeReadWrite | CFile::modeCreate,NULL); testfile.Write("abcd2",sizeof("abcd2")); testfile.Close();
在C目录下写文件2.plt,写入的内容是“abcd2”
2、创建、读取现有文件
CFile testfile; testfile.Open("C:\\rovast.txt",CFile::modeCreate| CFile::modeReadWrite); testfile.Write("Hello5",sizeof("Hello5")); testfile.Close(); testfile.Open("C:\\rovast.txt",CFile::modeRead); UINT testfilelength =0; testfilelength = testfile.GetLength(); BYTE* pBuf = NULL,*pData; pBuf = new BYTE[testfilelength+8]; if(pBuf != NULL) { memset(pBuf,0,sizeof(BYTE)*testfilelength); } testfile.Read(pBuf,testfilelength); testfile.Close(); pData = pBuf; for (UINT i=0; i<testfilelength;i++,pData++) { BYTE q = *pData; TRACE("%c",q); } if (pBuf != NULL) { delete []pBuf; }
在使用 CFile.Read功能时,本来想自定义一个文件长度的数组,无奈我使用char Buf[length],编译器不通过,说数组的长度不确定。所以此处使用了指针来实现。
需要注意的是我定义了两个指针,其中一个申请了一段内存,这个指针指向了内存首地址。后来在正确读取数据后,将首地址值传给了pData。使用pData进行读取工作。最后在使用结束之后释放这段内存。如果直接操作的是pBuf,在读取的时候进行++的操作,最后使用delete操作编译器可以通过,但是在使用软件的时候会报错