问题描述
- 用C语言如何获取当前目录下面的文件名字?
-
用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 %sn"), 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 %sn"),
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 批处理时,自动获取文件名及文件遍历。
解决方案五:
http://blog.csdn.net/wangyaninglm/article/details/8668132
时间: 2024-09-03 00:46:17