入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

c语言获取目录下的所有文件名

创建时间:2017-10-22 投稿人: 浏览次数:2514
利用C语言获取目录下所有的文件名,并将目录下的文件名输出到TXT文件中;
利用_findfirst和_findnext函数进行遍历查找;
小程序下载:
#include<time.h>
#include<stdio.h>
#include<dos.h>
#include<conio.h>
#include <stdlib.h>
#include <windows.h>
#include <direct.h>
//#pragma  comment(lib,"ws2_32.lib")
#include <io.h>

FILE *fp = NULL;
void view(char *FileAddr)
{
    struct _finddata_t file; //定义结构体变量
    long handle;
    int iRetVal = 0;
    FILE *pf = NULL;
    char cFileAddr[300];
    strcpy(cFileAddr, FileAddr);
    _chdir(FileAddr);
    strcat(cFileAddr, "*.*");
    handle = _findfirst(cFileAddr, &file);//查找所有文件


    if (handle == -1)//如果handle为-1, 表示当前目录为空, 则结束查找而返回如果handle为-1, 表示当前目录为空, 则结束查找而返回 
        return;
    else
    {
        if (file.attrib &_A_SUBDIR) //是目录
        {

            if (file.name[0] != ".") //文件名不是"."或".."时
            {
                memset(cFileAddr, 0, sizeof(cFileAddr));
                _chdir(file.name); //进入该目录
                printf("%s
",file.name);//               
                fprintf(fp,"%s
" ,file.name);

                _chdir("..");//查查找完毕之后, 返回上一级目录找完毕之后, 返回                 上一级目录 

            }
        }
        while (!(_findnext(handle, &file)))
        {
            if (file.attrib &_A_SUBDIR) //是目录
            {
                if (file.name[0] != ".") //文件名不是"."或".."时
                {
                    memset(cFileAddr, 0, sizeof(cFileAddr));
                    _chdir(file.name); //进入该目录
                    printf("%s
",file.name);//               add---
                    fprintf(fp,"%s
" ,file.name);

                    _chdir("..");//查查找完毕之后, 返回上一级目录找完毕之后, 返回                 上一级目录 

                }
            }
        }
        _findclose(handle);
    }

    return;
}

main()
{
int i=0;
char FileAddr[50];
time_t start,end;/*定义time_t类型变量start,end*/
printf("please input file path:
");
scanf("%s", FileAddr); 
puts(FileAddr); 
fp = fopen("aa.txt", "w");
if(fp ==NULL)
printf("打开文件aa.txt失败
");


start=time(NULL);/*将当前时间赋给start*/
view(FileAddr);
end=time(NULL);/*将中断后的当前时间赋给end*/
printf("runtime is:%f(s)
",difftime(end,start));/*调用difftime函数,从start到end说经过的时间*/
fclose(fp);
_getch();
}
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
  • 上一篇:没有了
  • 下一篇:没有了
未上传头像