1. 文件API
1.1. 打开关闭文件
CreateFile
HANDLE CreateFile(
LPCTSTR lpFileName, //指向文件名的指针
DWORD dwDesiredAccess, //访问模式 ( 写 / 读 )
DWORD dwShareMode, //共享模式
LPSECURITY_ATTRIBUTES lpSecurityAttributes, //指向安全属性的指针
DWORD dwCreationDisposition, //如何创建
DWORD dwFlagsAndAttributes, //文件属性
HANDLE hTemplateFile //用于辅助文件句柄
);
如果函数成功,返回一个打开的指定文件的句柄
CloseHandle
1.2. 文件的读写
ReadFile
BOOL ReadFile(
HANDLE hFile, //要读取的文件的句柄,必须为打开的
LPVOID lpBuffer, //接收文件数据的缓冲区指针
DWORD nNumberOfBytesToRead, //文件中要读取数据的大小
LPDWORD lpNumberOfBytesRead, //从文件中读出的数据大小
LPOVERLAPPED lpOverlapped //指向 OVERLAPPED 结构的指针
);
如果函数正确执行,则返回TRUE ,否则返回 FALSE
WriteFile
BOOL WriteFile(
HANDLE hFile, //要写入的文件句柄,必须为打开的
LPCVOID lpBuffer, //指向要写入的数据的缓冲区大小
DWORD nNumberOfBytesToWrite, //要写入的字节数
LPDWORD lpNumberOfBytesWritten, //返回实际写入文件的字节数
LPOVERLAPPED lpOverlapped //指向 OVERLAOOED 结构的指针
);
如果函数正确执行,则返回TRUE ,否则返回 FALSE
1.3. 获取文件大小
GetFile Size
DWORD GetFileSize(
HANDLE hFile, //访问的文件句柄,已打开
LPDWORD lpFileSizeHigh //高字节地址
);
如果函数执行成功,函数返回文件大小的低32 位的值,而如果文件很大,则参数 lpFileSiezHigh 返回高 32 位的值。如果函数执行失败,返回 0xFFFFFFFF 。
1.4. 文件的查找与遍历
FindFirstFile
HANDLE FindFirstFile(
LPCTSTR lpFileName, //表示文件名的字符串
LPWIN32_FIND_DATA lpFindFileData //指向 WIN32_FIND_DATA 结构的指针
//存储所查找的文件的属性
);
函数执行成功,返回一个有效的文件查找句柄,并且填充WIN32_FIND_DATA 结构
WIN32_FIND_DATA
typedef struct _WIN32_FIND_DATA {
DWORD dwFileAttributes; //文件的属性
FILETIME ftCreationTime; //文件创建时间
FILETIME ftLastAccessTime; //最后访问时间
FILETIME ftLastWriteTime; //最后修改时间
DWORD nFileSizeHigh;
DWORD nFileSizeLow; //大小
DWORD dwOID;
TCHAR cFileName[MAX_PATH]; //文件名称
} WIN32_FIND_DATA;
FindNextFile
根据有效的文件查找句柄调用FindNextFile() 函数进行下一个文件的查找。
BOOL FindNextFile(
HANDLE hFindFile, //为有效的文件查找句柄,如果函数执行 //成功,会被赋予下一个文件的查找句柄
LPWIN32_FIND_DATA lpFindFileData //同上
);
如果文件查找操作完成,需要调用函数FindClose() 关闭文件查找句柄。
1.5. 打开文件夹
SHBrowseForFolder
1.6. 打开文件与保持文件
GetOpenFileName
OPENFILENAME 结构体细看 http://baike.baidu.com/view/2175167.htm
GetSaveFileName
类似GetOpenFileName
http://www.cppblog.com/longshen/archive/2009/07/28/91514.html