c语言获取文件夹所有文件名,c 语言怎样获取一个文件夹下的所有文件名和文件?...

该代码实现了一个在指定路径下查找所有文件的函数`FindInAll`,它会递归地遍历目录并打印非隐藏文件的完整路径。`IsRoot`函数用于判断路径是否为根目录。程序首先检查`d:`目录,并忽略`.`和`..`这两个特殊目录。对于每个找到的文件,如果是目录则继续深入,否则打印文件路径。
摘要由CSDN通过智能技术生成

#include

#include

#define FILEILTER "*.*"

BOOL IsRoot(LPCTSTR lpszPath)

{

TCHAR szRoot[4];

wsprintf(szRoot, "%c:\", lpszPath[0]);

return (lstrcmp(szRoot, lpszPath) == 0);

}

void FindInAll(LPCTSTR lpszPath)

{

TCHAR szFind[MAX_PATH];

lstrcpy(szFind, lpszPath);

if (!IsRoot(szFind))

lstrcat(szFind, "\");

lstrcat(szFind, FILEILTER); // 找所有文件

WIN32_FIND_DATA wfd;

HANDLE hFind = FindFirstFile(szFind, &wfd);

if (hFind == INVALID_HANDLE_VALUE) // 如果没有找到或查找失败

return;

do

{

if (wfd.cFileName[0] == '.')

continue; // 过滤这两个目录

if (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)

{

TCHAR szFile[MAX_PATH];

if (IsRoot(lpszPath))

wsprintf(szFile, "%s%s", lpszPath, wfd.cFileName);

else

{

wsprintf(szFile, "%s\%s", lpszPath, wfd.cFileName);

FindInAll(szFile); // 如果找到的是目录,则进入此目录进行递归

}

}

else

{

TCHAR szFile[MAX_PATH];

if (IsRoot(lpszPath))

{

wsprintf(szFile, "%s%s", lpszPath, wfd.cFileName);

}

else

{

wsprintf(szFile, "%s\%s", lpszPath, wfd.cFileName);

printf("%sn",szFile);

}

// 对文件进行操作

}

} while (FindNextFile(hFind, &wfd));

FindClose(hFind); // 关闭查找句柄

}

int main(int argc, char* argv[])

{

char findFile[64]="d:";//要查找的目录

FindInAll(findFile);

getchar();

return 0;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值