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. 獲取文件大小
GetFileSize
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