道亦无名
2014-12-29 01:59
采纳率: 96.3%
浏览 6.4k
已采纳

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

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

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • save4me 2014-12-29 03:10
    已采纳

    参考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);
       }
    }
    
    打赏 评论
  • 91program 2014-12-29 02:08

    C 语言没有这个功能,需要借助于系统提供的功能。
    如 Windows 可以通过 API 获取到当前目录下所有的文件与目录名。通过 FindFirstFine 和 FindNextFile 配合,具体用法请见 MSDN 帮助。

    打赏 评论
  • 毛毛虫的爹 2014-12-29 06:23
    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;
    }
    
    打赏 评论
  • 缄默hong 2014-12-30 02:34

    http://blog.csdn.net/hong__fang/article/details/41448777 批处理时,自动获取文件名及文件遍历。

    打赏 评论
  • shiter 2014-12-30 02:45
    打赏 评论

相关推荐 更多相似问题