Windows下列出所有文件 FindFirstFile
来源:互联网 发布:须奈子家淘宝什么名字 编辑:程序博客网 时间:2024/04/28 16:50
#include <windows.h>#include <tchar.h> #include <stdio.h>#include <strsafe.h>#pragma comment(lib, "User32.lib")void DisplayErrorBox(LPTSTR lpszFunction);int _tmain(int argc, TCHAR *argv[]){ WIN32_FIND_DATA ffd; LARGE_INTEGER filesize; TCHAR szDir[MAX_PATH]; size_t length_of_arg; HANDLE hFind = INVALID_HANDLE_VALUE; DWORD dwError=0; // If the directory is not specified as a command-line argument, // print usage. if(argc != 2) { _tprintf(TEXT("\nUsage: %s <directory name>\n"), argv[0]); return (-1); } // Check that the input path plus 3 is not longer than MAX_PATH. // Three characters are for the "\*" plus NULL appended below. StringCchLength(argv[1], MAX_PATH, &length_of_arg); if (length_of_arg > (MAX_PATH - 3)) { _tprintf(TEXT("\nDirectory path is too long.\n")); return (-1); } _tprintf(TEXT("\nTarget directory is %s\n\n"), argv[1]); // Prepare string for use with FindFile functions. First, copy the // string to a buffer, then append '\*' to the directory name. StringCchCopy(szDir, MAX_PATH, argv[1]); StringCchCat(szDir, MAX_PATH, TEXT("\\*")); // Find the first file in the directory. hFind = FindFirstFile(szDir, &ffd); if (INVALID_HANDLE_VALUE == hFind) { DisplayErrorBox(TEXT("FindFirstFile")); return dwError; } // List all the files in the directory with some info about them. do { if (ffd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) { _tprintf(TEXT(" %s <DIR>\n"), ffd.cFileName); } else { filesize.LowPart = ffd.nFileSizeLow; filesize.HighPart = ffd.nFileSizeHigh; _tprintf(TEXT(" %s %ld bytes\n"), ffd.cFileName, filesize.QuadPart); } } while (FindNextFile(hFind, &ffd) != 0); dwError = GetLastError(); if (dwError != ERROR_NO_MORE_FILES) { DisplayErrorBox(TEXT("FindFirstFile")); } FindClose(hFind); return dwError;}void DisplayErrorBox(LPTSTR lpszFunction) { // Retrieve the system error message for the last-error code LPVOID lpMsgBuf; LPVOID lpDisplayBuf; DWORD dw = GetLastError(); FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, dw, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR) &lpMsgBuf, 0, NULL ); // Display the error message and clean up lpDisplayBuf = (LPVOID)LocalAlloc(LMEM_ZEROINIT, (lstrlen((LPCTSTR)lpMsgBuf)+lstrlen((LPCTSTR)lpszFunction)+40)*sizeof(TCHAR)); StringCchPrintf((LPTSTR)lpDisplayBuf, LocalSize(lpDisplayBuf) / sizeof(TCHAR), TEXT("%s failed with error %d: %s"), lpszFunction, dw, lpMsgBuf); MessageBox(NULL, (LPCTSTR)lpDisplayBuf, TEXT("Error"), MB_OK); LocalFree(lpMsgBuf); LocalFree(lpDisplayBuf);}
- Windows下列出所有文件 FindFirstFile
- Linux环境下列出指定目录下的所有文件
- win 遍历所有文件 FindFirstFile
- windows系统下使用FindFirstFile 和 FindNextFileA遍历某目录下的所有文件(c++编写)
- Linux下列出所有子目录及磁盘占用情况
- Windows下使用FindFirstFile和FindNextFile列举目录中的文件
- Windows API——FindFirstFile——查找文件
- linux下列出目标文件symbols的命令nm
- linux 下列出bt(bittorrent)文件内容的命令
- windows 列举出所有进程
- FindFirstFile读取文件目录
- 使用FindFirstFile和FindNextFile查找某个目录下的所有文件(包括子目录)
- 使用FindFirstFile和FindNextFile查找某个目录下的所有文件
- 使用FindFirstFile和FindNextFile查找某个目录下的所有文件(包括子目录)
- 使用FindFirstFile和FindNextFile查找某个目录下的所有文件(包括子目录)
- 使用FindFirstFile和FindNextFile查找某个目录下的所有文件(包括子目录)
- C/C++ 利用FindFirstFile()和FindNextFile() 历遍指定目录的所有文件
- 利用FindFirstFile(),FindNextFile()函数历遍指定目录的所有文件
- 《大话设计模式》读书笔记(C++代码实现) 第七章:代理模式
- 临沂最美乡村医生彭玉梅:救人遇车祸身亡(1)
- 临沂最美乡村医生彭玉梅:救人遇车祸身亡(2)
- 等比数列前N项和的公式推导
- (转)记录:VC++中打开保存目录选择对话框操作
- Windows下列出所有文件 FindFirstFile
- eclipse常用插件安装
- iPhone OS提供的音频单元
- C++编程2013.04.10
- 彻底明白Java的IO系统
- 求无序数组第K大的数
- 冒泡排序
- tcp 通信---cilent
- IOS持久化数据----(保存数据的一系列方法)