zoukankan      html  css  js  c++  java
  • 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();

  • 相关阅读:
    vue项目实战:原生百度地图api的使用
    vue项目实战:页面公共组件的全局注册动态引入的考虑
    celery+django的定时任务设置
    celery.exceptions.NotRegistered: 'tasks.add' + celery delay 坑 + python manage.py check 查看状态
    from __future__ import absolute_import的作用
    Django与celery集成:异步任务原理和过程
    python -m pip install --upgrade pip --default-timeout=100 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
    Django 的安全
    django集成sentry实现日志上报和钉钉告警
    TypeScript(21): 装饰器
  • 原文地址:https://www.cnblogs.com/googlegis/p/2979217.html
Copyright © 2011-2022 走看看