文件操作(三)
来源:互联网 发布:linux用什么语言写的 编辑:程序博客网 时间:2024/04/30 15:47
Win32下的文件操作:
在Win32下对文件操作可以通过以下Win32 API完成:
CreateFile(...)->CreateFile会返回一个文件handle,通过这个文件handle可以对文件进行操作。
WriteFile(...)
ReadFile(...)
......
如下例:
bool fWriteFile(const char *pchBuffer)
{
HANDLE hFile;
int iLen = 0;
DWORD iRealLength = 0;
if (NULL == pchBuffer)
{
return 1;
}
hFile = CreateFile("win32.txt", GENERIC_WRITE, 0, NULL, CREATE_NEW, FILE_ATTRIBUTE_NORMAL, NULL);
iLen = strlen(pchBuffer);
WriteFile(hFile, pchBuffer, iLen, &iRealLength, NULL);
CloseHandle(hFile);
return true;
}
bool fReadFile()
{
HANDLE hFile;
DWORD iRealLength = 0;
char pchBuffer[100];
memset(pchBuffer, 0, 100);
hFile = CreateFile("win32.txt", GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
ReadFile(hFile, pchBuffer, 100, &iRealLength, NULL);
pchBuffer[iRealLength] = 0;
printf("%s/n", pchBuffer);
CloseHandle(hFile);
return true;
}
int main(int argc, char* argv[])
{
char *pchBuffer = "http://news.sina.com.cn";
if (!fWriteFile(pchBuffer))
{
return 1;
}
if (!fReadFile())
{
return 1;
}
return 0;
}
注意:实际上,CreateFile是一个功能非常强大的Win32 API函数,它不但可以创建或打开一个文件,返回相应文件对象handle,它还可一个创建或打开以下对象,返回相应对象的handle,包括:
管道
邮槽
通信资源
磁盘设备(仅适用于Window NT平台)
控制台
目录(仅用于打开操作)
MFC下文件操作:
在MFC中,对文件操作可以通过CFile类来完成,CFile类对文件操作提供了很好的支持,所以如果我们在MFC编程中,遇到涉及文件的操作,最好采用CFile来完成:构造一个CFile类的对象,调用其相应的方法。如下例:
bool fWriteFile(const char *pchBuffer)
{
int iLen = 0;
CFile file("mfc.txt", CFile::modeCreate | CFile::modeWrite);
iLen = strlen(pchBuffer);
file.Write(pchBuffer, iLen);
file.Close();
return true;
}
char* pchReadFile()
{
char *pchBuffer = NULL;
DWORD ulLen = 0;
CFile file("mfc.txt", CFile::modeRead);
ulLen = file.GetLength(); //得到文件长度
pchBuffer = new char[ulLen+1];
file.Read(pchBuffer, ulLen);
pchBuffer[ulLen] = 0;
file.Close();
return pchBuffer;
}
在相应的地方调用以上两个函数即可。
在Win32下对文件操作可以通过以下Win32 API完成:
CreateFile(...)->CreateFile会返回一个文件handle,通过这个文件handle可以对文件进行操作。
WriteFile(...)
ReadFile(...)
......
如下例:
bool fWriteFile(const char *pchBuffer)
{
HANDLE hFile;
int iLen = 0;
DWORD iRealLength = 0;
if (NULL == pchBuffer)
{
return 1;
}
hFile = CreateFile("win32.txt", GENERIC_WRITE, 0, NULL, CREATE_NEW, FILE_ATTRIBUTE_NORMAL, NULL);
iLen = strlen(pchBuffer);
WriteFile(hFile, pchBuffer, iLen, &iRealLength, NULL);
CloseHandle(hFile);
return true;
}
bool fReadFile()
{
HANDLE hFile;
DWORD iRealLength = 0;
char pchBuffer[100];
memset(pchBuffer, 0, 100);
hFile = CreateFile("win32.txt", GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
ReadFile(hFile, pchBuffer, 100, &iRealLength, NULL);
pchBuffer[iRealLength] = 0;
printf("%s/n", pchBuffer);
CloseHandle(hFile);
return true;
}
int main(int argc, char* argv[])
{
char *pchBuffer = "http://news.sina.com.cn";
if (!fWriteFile(pchBuffer))
{
return 1;
}
if (!fReadFile())
{
return 1;
}
return 0;
}
注意:实际上,CreateFile是一个功能非常强大的Win32 API函数,它不但可以创建或打开一个文件,返回相应文件对象handle,它还可一个创建或打开以下对象,返回相应对象的handle,包括:
管道
邮槽
通信资源
磁盘设备(仅适用于Window NT平台)
控制台
目录(仅用于打开操作)
MFC下文件操作:
在MFC中,对文件操作可以通过CFile类来完成,CFile类对文件操作提供了很好的支持,所以如果我们在MFC编程中,遇到涉及文件的操作,最好采用CFile来完成:构造一个CFile类的对象,调用其相应的方法。如下例:
bool fWriteFile(const char *pchBuffer)
{
int iLen = 0;
CFile file("mfc.txt", CFile::modeCreate | CFile::modeWrite);
iLen = strlen(pchBuffer);
file.Write(pchBuffer, iLen);
file.Close();
return true;
}
char* pchReadFile()
{
char *pchBuffer = NULL;
DWORD ulLen = 0;
CFile file("mfc.txt", CFile::modeRead);
ulLen = file.GetLength(); //得到文件长度
pchBuffer = new char[ulLen+1];
file.Read(pchBuffer, ulLen);
pchBuffer[ulLen] = 0;
file.Close();
return pchBuffer;
}
在相应的地方调用以上两个函数即可。
- 文件操作(三)
- 文件操作(三)《转载》
- Linux文件操作(三)
- Java文件操作(三)
- (三)HDFS文件操作
- 容器与文件操作(三)文件的读写操作
- 文件操作(三)(四)
- SHELL初级(三)+ 文件操作
- Windows CE文件操作(之三)
- Java文件操作大全(三)
- Java操作文件三(word)
- android的文件、目录操作(三)
- python文件操作(三)之压缩文件
- 文件操作三(select、poll多路复用)
- c++ 文件及文件夹操作(三)
- Linux C文件操作(三)
- node.js使用(三):文件操作
- Nodejs 学习(三)--文件操作
- PHP 的 __FILE__ 常量
- 关于手机软件“移动万年历”
- 什么是CSS hack及写法
- failed to lazily initialize a collection of role: XXXXXXXX no session or session was closed
- ThreadLocal的设计与使用
- 文件操作(三)
- ASP.Net学习之常用SQL存储过程
- 安家~
- 程序员35岁前成功的12条黄金法则
- 平摊分析 (amortized analysis) -算法导论学习笔记
- 深入解析WINDOWS操作系统
- 搜索引擎也开源(郑依华/ccw.com.cn)
- Ajax 控件的安装 ~ 折腾死俺啦~ 终于搞定啦 !!!!
- 开篇