我是靠谱客的博主 落寞鱼,最近开发中收集的这篇文章主要介绍WinCE 文件操作,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

常用的三种方法,归纳如下: 方法一 使用MFC的CFile类 打开用Open,关闭用Close(),文件指针移动用Seek,读文件用Read(),写文件用Write,获取文件属性可以使用GetFileStatus方法,这个可以查看MSDN,下面给几行简单代码: CFile file; bool isOpenOK = file.Open(L"//flash disk//flyfox//test.txt" , CFile::typeBinary|CFile::modeRead);//返回真表示读成功 if (isOpenOK) { char buffer[1024]; file.Seek (10L, CFile::begin); DWORD readCount = file.Read(fileBuffer, 1024); // 返回实际读到的字节数 } file.Close (); 方法二 基于C的使用FILE结构体 1、打开文件使用_wfopen,原型如下: FILE *_wfopen( const wchar_t *filename, const wchar_t *mode ); 第二个参数是打开模式,这里有很多,比如r,w,r+等等,意义如下: 1、"r" 以只读方式打开文件,文件不存在将打开失败 2、"w" 以只写方式打开文件,如无文件生成新文件,如果文件已存在,将被破坏 3、"a" 以追加的方式打开文件,如果文件不存在,将自动创建一个新文件,已经存在的文件EOF标志将不动。 4、"r+" 以读/写方式打开文件,文件不存在将打开失败 5、"w+" 以读/写方式打开文件,如无文件生成新文件,如果文件已存在,将被破坏 6、a+ 以追加方式打开文件,如果文件不存在,将自动创建一个新文件,已经存在的文件的EOF标志将会去掉,并在写好新的数据后自动加到文件末尾。 7、t 以文本模式打开 8、b 以二进制模式打开。 这些标志可以同时使用,比如rb+(就是br+)以二进制方式,只读打开文件。 2、读文件使用fread(),原型如下: size_t fread( void *buffer, size_t size, size_t count, FILE *stream ); 参数: buffer是保存读取的数据, size是每块的字节数; n是读取的块数,如果成功,返回实际读取的块数(不是字节数),本函数一般用于二进制模式打开的文件中。 例:   char buffer[1024];   FILE *file = fopen(L"//flash disk//flyfox//test.txt", "r");   fread(buffer, 2, 150 , file);//按每块2个字节,读取1590块,共读取2*150=300个字节,实际读取块数可由函数返回。 3、写文件使用fwrite()。与fread对应,原型如下: size_t fwrite( const void *buffer, size_t size, size_t count, FILE *stream ); 参数意义同fread。 4、fseek()   此函数一般用于二进制模式打开的文件中,功能是定位到流中指定的位置,原型如下: int fseek( FILE *stream, long offset, int origin ); 如果成功返回0。 参数: offset是移动的字符数, origin是移动的基准,表示从哪开始移动文件指针,取值如下: 符号常量 值 基准位置 SEEK_SET 0 文件开头 SEEK_CUR 1 当前读写的位置 SEEK_END 2 文件尾部 例:fseek(file, 1000L, SEEK_CUR); //把读写位置从当前位置向后移动1234字节   fseek(file, 0L, 2); //把读写位置移动到文件尾 5、关闭则是使用fclose,原型如下: int fclose( FILE *stream ); 对这种方法,也给出几行简单代码: FILE *fp = _wfopen(pFileName, L"ab" ); if (!fseek (fp, 100, SEEK_SET)) { x = fwrite(buffer, 1, 1024, fp); fflush (fp); } fclose (fp);方法三 采用WinCE的API 1. 文件的打开CreateFile 以上参数比较多,这个在EVC下有帮助,可以查到。可以举个例子: HANDLE hFile = CreateFile (pFileName, GENERIC_WRITE, FILE_SHARE_WRITE, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); if (hFile == INVALID_HANDLE_VALUE) { //打开失败 } 2. 文件的关闭 文件使用完之后就应该及时关闭,以释放对它的资源 BOOL CloseHandle(HANDLE hObject); 比如CloseHandle(hFile); 3. 文件的读写 文件的读ReadFile 文件的写WriteFile 比如: bool b = WriteFile (hFile, pBuffer, dToWrite, pWrite, NULL); //dToWrite为准备写入的字节数,pWrite为DWORD*,获取实际写入的字节数 if ( !b ) { //写失败 } 4. 文件指针的移动SetFilePointer 例如:SetFilePointer(hFile, 0, NULL, FILE_BEGIN); 5. 获取和设置文件信息 参数表示文件名或者目录名 DWORD GetFileAtrribute(LPSTSTR lpFileName); DWORD SetFileAttributes(LPCT STR lpFileName,DWORD dwFileAttributes); 6. 获取和设置文件时间 BOOL GetFileTime BOOL SetFileTime 7. 获取文件大小 DWORD GetFileSize(HANDLE hFile, NULL); 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/cfanlwn/archive/2010/01/05/5136695.aspx

最后

以上就是落寞鱼为你收集整理的WinCE 文件操作的全部内容,希望文章能够帮你解决WinCE 文件操作所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部