/************************************************************************* *wr.c 创建,打开,读写文件,获取文件大小 *************************************************************************/ /*头文件*/ #include<windows.h> #include<stdio.h> /************************************************************************ *DWORD ReadFileContent(LPSTR szFilePath) *功能:获取文件大小,读取文件内容,并以十六进制显示出来 *参数: LPSTR szFilePath 文件路径 ************************************************************************/ DWORD ReadFileContent(LPSTR szFilePath) { HANDLE hFileRead; LARGE_INTEGER liFileSize; BYTE lpFileBuffer[32]; DWORD dwReadSize; LONGLONG llTotalRead=0; hFileRead=CreateFile(szFilePath,GENERIC_READ,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL); if(hFileRead==INVALID_HANDLE_VALUE) { printf("打开文件失败:%d/n",GetLastError()); } else if(!GetFileSizeEx(hFileRead,&liFileSize)) { printf("获取文件大小失败:%d/n",GetLastError()); } else { printf("文件大小为:%I64u/n",liFileSize.QuadPart); } //循环读取并打印文件内容 while(TRUE) { DWORD i; if(!ReadFile(hFileRead,lpFileBuffer,32,&dwReadSize,NULL)) { printf("读文件错误:%d/n",GetLastError()); break; } printf("读取了%d字节,文件内容是:/n",dwReadSize); for(i=0;i<dwReadSize;i++) { printf("0x%x",lpFileBuffer[i]); } printf("/n"); llTotalRead+=dwReadSize; if(llTotalRead==liFileSize.QuadPart) { printf("读文件结束/n"); break; } } CloseHandle(hFileRead); return 0; } /************************************************************************* *DWORD SaveDataToFile(LPSTR szFilePath,LPVOID lpData,DWORD dwDateSize) *功能: 将数据存储到文件末尾 *参数: LPSTR szFilePath 文件路径 LPVOID lpData 需存储的数据 DWORD dwDataSize 数据大小 ***************************************************************************/ DWORD SaveDataToFile(LPSTR szFilePath,LPVOID lpData,DWORD dwDataSize) { HANDLE hFileWrite; DWORD dwWritedDataSize; hFileWrite=CreateFile(szFilePath,GENERIC_WRITE,0,NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL); if(hFileWrite==INVALID_HANDLE_VALUE) { printf("打开文件失败:%d/n",GetLastError()); } SetFilePointer(hFileWrite,0,0,FILE_END); if(!WriteFile(hFileWrite,lpData,dwDataSize,&dwWritedDataSize,NULL)) printf("写入失败%d/n",GetLastError()); else printf("写入成功,写入%d字节",dwWritedDataSize); CloseHandle(hFileWrite); return 0; } /********************************************************************************* * int main(void) * 功能:演示使用SaveDataToFile和ReadFileContent函数 **********************************************************************************/ int main() { LPSTR szFileData="这是一个例子"; SaveDataToFile("d://show.txt",szFileData,lstrlen(szFileData)); ReadFileContent("d://show.txt"); system("pause"); return 0; }