用C语言如何获取当前目录下面的文件名字?

用C语言如何获取当前目录下面的文件名字?这些文件名字存放到一个文件中。求大神助攻

5个回答

参考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 批处理时,自动获取文件名及文件遍历。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问