C++问题,请问如何获得一个文件夹里的文件的信息。

例如有一个文件夹名为folder,里面有两个文件file1,和file2,现在要根据那个文件夹名输出里面的两个文件的信息,包括文件大小,文件名。请问代码怎么写

那其实不是纯粹的C++问题,因为C++中就我所知没有文件夹这个概念,只有路径这个概念.如果在windows中,你可以用诸如:FindFirstFile等函数来解决

网上找了段代码,你看看
#include "stdio.h"
#include "windows.h"
void find(char * lpPath)
{
char szFind[MAX_PATH],szFile[MAX_PATH];
WIN32_FIND_DATA FindFileData;
strcpy(szFind,lpPath);
strcat(szFind,"\\*.*");HANDLE hFind=::FindFirstFile(szFind,&FindFileData);
if(INVALID_HANDLE_VALUE == hFind)
return;
while(TRUE)
{
if(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
if(FindFileData.cFileName[0]!='.')
{
strcpy(szFile,lpPath);
strcat(szFile,"\\");
strcat(szFile,FindFileData.cFileName);
find(szFile);
}
}
else
{
printf("%s\n",FindFileData.cFileName);
}
if(!FindNextFile(hFind,&FindFileData))
break;
}
}
void main()
{
char filepath[MAX_PATH]="E:\\我的文件夹\\测试文件夹";
find(filepath);
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-08-30
char sFilePath[MAX_PATH]="D:\\TestFolder"; //可指定查找文件类型
char sPath[MAX_PATH];
sprintf(sPath,"%s\\*.txt",sFilePath);
WIN32_FIND_DATA FindFileData;
HANDLE hFindFile = FindFirstFile(sPath, &FindFileData);
if(hFindFile==INVALID_HANDLE_VALUE)
{
AfxMessageBox("未找到文件!\n");
return 0;
}
do{
char sFileName[MAX_PATH];
sprintf(sFileName,"%s\\%s",sFilePath,FindFileData.cFileName);
//显示文件信息 WIN32_FIND_DATA
printf("%s\n",sFileName);
}while(FindNextFile(hFindFile,&FindFileData));
FindClose(hFindFile);
相似回答
大家正在搜