您的位置:首页 > 编程语言

VC编程基础:文件和文件夹操作

2010-01-19 14:01 766 查看
之前写关于文件操作的程序,总要冥想一番,在msdn上或网络上搜索一番才能知道有哪些操作文件的api。所以今天闲暇之余总结下,

以后虽然做不到写程序是信手拈来,但至少也略有所知啊:

一)CreateFile,SetFilePointer,WriteFile,GetFileSize, ReadFile,CloseHandle, CopyFile, MoveFile, DeleteFile, _trename。为了减少IO的操作,在写文件的时候我们可以加一个buffer,只有这个buffer满了或者放不下内容了才往文件里写,一般情况下只是把内容拷贝到Buffer里,简单的例子如下:

int WriteString(LPCTSTR strFileName, LPCSTR strScr)

{

HANDLE hFile = ::CreateFile(strFileName,

GENERIC_WRITE|GENERIC_READ,

FILE_SHARE_WRITE | FILE_SHARE_READ,

NULL,

OPEN_ALWAYS,

FILE_ATTRIBUTE_NORMAL,

NULL);

if(INVALID_HANDLE_VALUE == hFile)

{

return -1;

}

::SetFilePointer(hFile, 0, NULL, FILE_END);

int strLength = ::strlen(strScr);

if(bufPos + strLength > MAX_LENGTH)

{

DWORD lpNumberOfBytesWritten;

WriteFile(hFile, buffer, bufPos, &lpNumberOfBytesWritten, NULL);

bufPos = 0;

WriteFile(hFile, strScr, strLength, &lpNumberOfBytesWritten, NULL);

CloseHandle(hFile);

return 0;

}

memcpy(buffer + bufPos, strScr, strLength);

bufPos += strLength;

CloseHandle(hFile);

return 0;

}

二)fopen, fread,fwrite, fclose,fgetc,fgetc, fgets,fputs, fseek,ftell

三)运用数据流操作文件:

1.ifstream: 可以用方法getline从该对象中一行行的读取

2.ofstream:基于该对象的方法:write,flush,put, tellp, seekp.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: