用C语言如何获取当前目录下面的文件名字?这些文件名字存放到一个文件中。求大神助攻
参考How can I get the list of files in a directory using C or C++?
_For Unix/Linux based systems: _
len = strlen(name);
dirp = opendir(".");
while ((dp = readdir(dirp)) != NULL)
if (dp->d_namlen == len && !strcmp(dp->d_name, name)) {
(void)closedir(dirp);
return FOUND;
}
(void)closedir(dirp);
return NOT_FOUND;
_For a windows based systems: _
#include <windows.h>
#include <tchar.h>
#include <stdio.h>
void _tmain(int argc, TCHAR *argv[])
{
WIN32_FIND_DATA FindFileData;
HANDLE hFind;
if( argc != 2 )
{
_tprintf(TEXT("Usage: %s [target_file]\n"), argv[0]);
return;
}
_tprintf (TEXT("Target file is %s\n"), argv[1]);
hFind = FindFirstFile(argv[1], &FindFileData);
if (hFind == INVALID_HANDLE_VALUE)
{
printf ("FindFirstFile failed (%d)\n", GetLastError());
return;
}
else
{
_tprintf (TEXT("The first file found is %s\n"),
FindFileData.cFileName);
FindClose(hFind);
}
}
C 语言没有这个功能,需要借助于系统提供的功能。
如 Windows 可以通过 API 获取到当前目录下所有的文件与目录名。通过 FindFirstFine 和 FindNextFile 配合,具体用法请见 MSDN 帮助。
CFileFind finder;
CString str;
int picnum=0;
int Work = finder.FindFile("debug\\*.jpg");
while(Work)
{
Work=finder.FindNextFile();//类似指针会指向下个位图
str=finder.GetFilePath();
str=finder.GetFileName();
picnum+=1;
}
http://blog.csdn.net/hong__fang/article/details/41448777 批处理时,自动获取文件名及文件遍历。