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.
以后虽然做不到写程序是信手拈来,但至少也略有所知啊:
一)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.
相关文章推荐
- 【API】文件操作编程基础-CreateFile、WriteFile、SetFilePointer
- VC++ MFC文件,文件夹操作整理
- 积累的VC编程小技巧之文件操作
- VC编程改变指定的文件或文件夹的属性
- C# 文件及其文件夹基础操作
- VC++ MFC文件,文件夹操作整理
- Linux基础编程-文件操作open,lseek,read,write,close
- 【C++学习笔记】文件操作编程基础
- UG OPEN API编程基础 4部件文件的相关操作
- vc++基础班[21]---文件的基本操作之CFile
- java文件操作大全-Java基础-Java-编程开发
- Android编程心得-在Assets文件夹中放入.sql文件实现创建SQlite表的操作
- vc++基础班[22]---文件的基本操作2
- VC 快速创建多层文件夹&文件的创建、打开、读写、操作
- 系统编程中的基础文件操作
- Unix高级编程:获取文件元数据、文件夹操作
- vc++基础班[23]---文件夹的基本操作
- Linux第2课——Linux技术之目录(文件夹)与文件操作基础
- VC编程小技巧之文件操作
- linux 基础编程:文件操作总结