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

问题描述

用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

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

jsp编程获取当前目录下的文件和目录及windows盘符的方法_JSP编程

本文实例讲述了jsp编程获取当前目录下的文件和目录及windows盘符的方法.分享给大家供大家参考,具体如下: (一)获取当前目录下的文件和目录 知识点 1 file对象的应用 2 listFiles()方法 3 isDirectory()方法,isFile()方法 判断是否为目录或是文件 4转换字符串方法toString (1)创建一个file对象dir, 然后用listFiles()方法返回当前目录下所有文件 String path=request.getRealPath("/")

VBS获取当前目录下所有文件夹名字的代码_vbs

VBS获取当前目录下所有文件夹名字,不包括子文件夹.我要给每个文件夹进行操作,所以最好用循环输出. 测试的时候要保证当前目录下有文件夹才可以,否则输出为空. 复制代码 代码如下: Set ws=WScript.CreateObject("wscript.shell")w=ws.CurrentDirectorySet fso=WScript.CreateObject("scripting.filesystemobject")Set fs=fso.GetFolder(w

在C语言编程中设置和获取代码组数的方法_C 语言

C语言setgroups()函数:设置组代码函数头文件: #include <grp.h> 定义函数: int setgroups(size_t size, const gid_t * list); 函数说明:setgroups()用来将list 数组中所标明的组加入到目前进程的组设置中. 参数size 为list()的gid_t 数目, 最大值为NGROUP(32). 返回值:设置成功则返回0, 如有错误则返回-1. 错误代码: EFAULT:参数list 数组地址不合法. EPERM:权限

编程c语言-关于C语言的基础问题求助

问题描述 关于C语言的基础问题求助 设有10个图书记录,每本书都有书号,书名,放置地点等信息.用户输入一个书号或部分书名输出此书放置地点. 解决方案 .......... 解决方案二: c语言中 引用头文件时""与C语言编译器会用一些目录存放公共头文件:如果用的查找范围),""的查找速度快. 一般来说,自己定义的头文件应该用"",因为这些文件放在工程目录(也就是编译器的当前目录)下,而不是放在公共头文件目录下,如果用<>则找不到头文件

Java语言与C++语言的差异总结

Java的设计者曾说过,设计这门语言的灵感主要来自于C++. 世上先有C++,然后才有Java,整个Java语言的发展历史就是一部对C++的填坑史.所以在Java语言学习过程中,将其与C++语言对比是一件有意义的事情.通过这些对比,我们能够了解到Java语言相对于C++语言有哪些改进,能带给我们哪些进步,这样对于更加深入理解这两种语言是大有裨益的. 下面我总结一下Java语言与C++语言的各种差异. 1.Java用来操纵对象的引用可以先初始化再指向对象,而C++的引用必须在初始化时就指向对象.

C#语言与Java语言程序的比较

迈入二十一世纪以来,信息行业飞速壮大,其中在软件开发中Java语言与C#语言都独当一面,得到了逐步完善和广泛的应用,Java语言和C#语言都是一种面向对象的语言,但Java程序和C#程序还是有一定的区别. 下面分别是两种语言的程序的例子. 1.Java语言的基本程序: Import java.util.*; Package HelloJava{ Public class Message{ Public static void main(String [] args){ System.out.pr

jsp中获取当前目录的方法

本文实例讲述了jsp中获取当前目录的实现方法,分享给大家供大家参考.具体实现方法如下: 1.利用System.getProperty()函数获取当前路径: 代码如下: System.out.println(System.getProperty("user.dir"));//user.dir指定了当前的路径 2.使用File提供的函数获取当前路径: 代码如下: File directory = new File("");//设定为当前文件夹 try{ System.o

Javascript中使用A标签获取当前目录的绝对路径方法

 这篇文章主要介绍了Javascript中使用A标签获取当前目录的绝对路径方法,本文讲解的方法比较特别,需要的朋友可以参考下     一谈到路径相关的问题,大家都会往window.location上想,确实这个对象提供了相当多的路径信息,其中常用的就包括: 1.location.href:当前页面的完整URL 2.location.pathname:当前URL中的路径名 3.location.hash:当前URL中的锚点 4.location.search:当前URL中的查询参数 然而,loca

Thinkphp搭建包括JS多语言的多语言项目实现方法_php实例

本文实例讲述了Thinkphp搭建包括JS多语言的多语言项目实现方法.分享给大家供大家参考.具体实现方法如下: 一.问题: 项目需要开发英文版,于是需要搭建多语言项目. 项目使用Thinkphp框架,隐约记得Thinkphp有多语言设置,翻看了帮助手册,果然有,这就边实验边开始: 二.实现方法: Thinkphp采用app_begain来检测和切换语言包,语言包和项目相关,构架等都比较简单,具体的这里:http://www.thinkphp.cn/info/188.html 搭建好了,就可以使用