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

之前写关于文件操作的程序,总要冥想一番,在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.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值