如何枚举一个指定目录下的文件或目录 如何枚举一个指定目录下的文件或目录啊? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 FindFirstFile/FindNextFile/FindCloseCFileFind WIN32_FIND_DATAThe WIN32_FIND_DATA structure describes a file found by the FindFirstFile, FindFirstFileEx, or FindNextFile function. typedef struct _WIN32_FIND_DATA { // wfd DWORD dwFileAttributes; FILETIME ftCreationTime; FILETIME ftLastAccessTime; FILETIME ftLastWriteTime; DWORD nFileSizeHigh; DWORD nFileSizeLow; DWORD dwReserved0; DWORD dwReserved1; TCHAR cFileName[ MAX_PATH ]; TCHAR cAlternateFileName[ 14 ]; } WIN32_FIND_DATA; FILE_ATTRIBUTE_DIRECTORY The handle identifies a directory. BOOL bFind;CFileFind tempFind;bFind = tempFind.FindFile("*.*");while(bFind){bFind = tempFind.FindNextFile();if(tempFind.IsDirectory()&& !tempFind.IsDots()){ //是文件夹}if( !tempFind.IsDirectory() && !tempFind.IsDots() ){ //是文件} #define _WIN32_WINNT 0x0501#include <windows.h>#include <string.h>#include <stdio.h>int main(int argc, char *argv[]){ WIN32_FIND_DATA FindFileData; HANDLE hFind = INVALID_HANDLE_VALUE; char DirSpec[MAX_PATH]; // directory specification DWORD dwError; printf ("Target directory is %s.\n", argv[1]); strncpy (DirSpec, argv[1], strlen(argv[1])+1); strncat (DirSpec, "\\*", 3); hFind = FindFirstFile(DirSpec, &FindFileData); if (hFind == INVALID_HANDLE_VALUE) { printf ("Invalid file handle. Error is %u\n", GetLastError()); return (-1); } else { printf ("First file name is %s\n", FindFileData.cFileName); while (FindNextFile(hFind, &FindFileData) != 0) { printf ("Next file name is %s\n", FindFileData.cFileName); } dwError = GetLastError(); FindClose(hFind); if (dwError != ERROR_NO_MORE_FILES) { printf ("FindNextFile error. Error is %u\n", dwError); return (-1); } } return (0);} 怎么接受多个用户连接? winapi 对话框消息处理 可以这么理解#include不? vc 工具栏 自定义图标 请问如何将 文档/视图结构的窗体 设置为无标题栏,最大化占满整个屏幕? 为什么我的从记录及中读取数据的程序会耗用太多的时间? 请问在VC中怎样改变静态文本的内容?谢谢! 求助!如何得到当前屏幕的输入字符! 请问Dialog程序如何在启动时不显示窗口? 求助关于时间比例的算法 dll怎么发送数据给windows service? 大家谈谈怎样才算是精通MFC?
The WIN32_FIND_DATA structure describes a file found by the FindFirstFile, FindFirstFileEx, or FindNextFile function. typedef struct _WIN32_FIND_DATA { // wfd
DWORD dwFileAttributes;
FILETIME ftCreationTime;
FILETIME ftLastAccessTime;
FILETIME ftLastWriteTime;
DWORD nFileSizeHigh;
DWORD nFileSizeLow;
DWORD dwReserved0;
DWORD dwReserved1;
TCHAR cFileName[ MAX_PATH ];
TCHAR cAlternateFileName[ 14 ];
} WIN32_FIND_DATA;
FILE_ATTRIBUTE_DIRECTORY The handle identifies a directory.
CFileFind tempFind;
bFind = tempFind.FindFile("*.*");
while(bFind)
{
bFind = tempFind.FindNextFile();
if(tempFind.IsDirectory()&& !tempFind.IsDots())
{
//是文件夹
}
if( !tempFind.IsDirectory() && !tempFind.IsDots() )
{
//是文件
}
#include <string.h>
#include <stdio.h>int main(int argc, char *argv[])
{
WIN32_FIND_DATA FindFileData;
HANDLE hFind = INVALID_HANDLE_VALUE;
char DirSpec[MAX_PATH]; // directory specification
DWORD dwError; printf ("Target directory is %s.\n", argv[1]);
strncpy (DirSpec, argv[1], strlen(argv[1])+1);
strncat (DirSpec, "\\*", 3); hFind = FindFirstFile(DirSpec, &FindFileData); if (hFind == INVALID_HANDLE_VALUE)
{
printf ("Invalid file handle. Error is %u\n", GetLastError());
return (-1);
}
else
{
printf ("First file name is %s\n", FindFileData.cFileName);
while (FindNextFile(hFind, &FindFileData) != 0)
{
printf ("Next file name is %s\n", FindFileData.cFileName);
}
dwError = GetLastError();
FindClose(hFind);
if (dwError != ERROR_NO_MORE_FILES)
{
printf ("FindNextFile error. Error is %u\n", dwError);
return (-1);
}
}
return (0);
}