• WinCE文件基本操作


     WinCE下对文件的基本操作

    WinCE对文件操作有两种方式:一种是用WinCE自带的API函数,另一种方法是用MFC类库种的CFile类。
    我们先用第一种的操作:
    1.  文件的打开
    HANDLE CreateFile(
    LPCTSTR lpFileName,
    DWORD dwDesireAccess,
    DWORD dwShareMode,
    LPSECURITY_ATTRIBUTES lpSecurityAttributes,
    DWORD dwCreationDispostion,
    DWORD dwFlagsAndAttributes,
    HANDLE hTemplateFile);
    以上参数比较多,这个在EVC下有帮助,可以查到。可以举个例子:
    HANDLE hFile;
    hFile = CreateFile(_T(“\\My Documents\\MYFILE.TXT”),
    GENERIC_READ,
    FILE_SHARE_READ,
    NULL,
    OPEN_EXISTING,
    FILE_ATTRIBUTE_NORMAL,
    NULL);
    If(hFile == INVALID_HANDLE_VALUE)
    {
           AfxMessageBox(_T(“打开失败”));
           return;
    }
    2.  文件的关闭
    文件使用完之后就应该及时关闭,以释放对它的资源
    BOOL CloseHandle(HANDLE hObject);
    比如说上例中
    CloseHandle(hFile);
    3.  文件的读写
    文件的读
    BOOL ReadFile(
    HANDLE hFile,
    LPVOID lpBuffer,
    DWORD nNumberOfBytesToRead,
    LPDWORD lpNumberOfBytesRead,
    NULL);
    最后一个参数在WINCE下是不支持的,所以一般用NULL.
    文件的写
    BOOL WriteFile(
    HANDLE hFile,
    LPCVOID lpBuffer,
    DWORD nNumberOfBytesWritten,
    NULL);
    最后一个参数在WINCE下是不支持的,所以一般用NULL.


    4.  文件指针的移动
    DWORD SetFilePointer(
    HANDLE hFile,
    LONG lDistanceToMove,
    PLONG lpDistanceToMoveHigh,
    DWORD dwMoveMethod);
    例如:
    SetFilePointer(hFile,0,NULL,FILE_BEGIN);


    5.  获取和设置文件信息
    DWORD GetFileAtrribute(LPSTSTR lpFileName);
    参数表示文件名或者目录名
    DWORD SetFileAttributes(LPCTSTR lpFileName,DWORD dwFileAttributes);
    6.  获取和设置文件时间
    BOOL GetFileTime(
    HANDLE hFile,
    LPFILETIME lpCreationTime,
    LPFILETIME lpLastAccessTime,
    LPFILETIME lpLastWriteTime);
    BOOL SetFileTime(
    HANDLE hFile,
    const FILETIME *lpCreationTime,
    const FILETIME *lpLastAccessTime,
    const FILETIME *lpLastWriteTime);
    7.  获取文件大小
    DWORD GetFileSize(HANDLE hFile, NULL);


    第二种操作:使用MFC
    1.  文件的打开
    CFile( LPCTSTR lpszFileName,  UNIT nOpenFlags);
    或者使用CFile::Open函数
    Virtual BOOL Open( LPCTSTR lpszFileName, UINT nOpenFlags, CFileException* pError =NULL);
    2.  文件的关闭
    直接调用Close()方法就可以了,比如说file.Close();
    3.  文件的读写
    Virtual UNIT Read( void* lpBuf, UNIT nCount);
    其中注意nCount是从文件中读取的最大的数据量,返回的是实际的读取的数据量,可能小于nCount的值。
    Virtual void Write(const void * lpBuf, UNIT nCount);
    4.  文件指针的移动
    Virtual LONG Seek(LONG lOff, UINT nFrom); lOff表示偏移量,nFrom表示计算方式。
    Void SeekToBegin();
    Void SeekToEnd();

  • 相关阅读:
    HDU 3848 CC On The Tree 树形DP
    编程求取直线一般式表达式,两直线交点
    向外国学者所要论文源代码--英语模版
    找出该树中第二小的值--思路及算法实现
    不使用额外空间交换2个数据的源代码
    华为2018软件岗笔试题解题思路和源代码分享
    华为笔试题--LISP括号匹配 解析及源码实现
    Linux 快捷键汇总(偏基础)
    快速排序算法思路分析和C++源代码(递归和非递归)
    Python读取SQLite文件数据
  • 原文地址:https://www.cnblogs.com/googlegis/p/2979217.html
Copyright © 2020-2023  润新知