C语言怎么读取某一文件夹下的所有文件夹和文件?

C语言怎么读取某一文件夹下的所有文件夹和文件?,第1张

读桥埋困取的代码方式如下:

intmain()

{

longfile

struct_finddata_tfind

_chdir("d:\\")

if((file=_findfirst("*.*",&find))==-1L)

{

printf("空白!\n")

exit(0)

}

printf("%s\n",find.name)

while(_findnext(file,&find)==0)

{

printf("%s\n",find.name)

}

_findclose(file)

return0

}

用C语言读取目录中的文件名的方法:

1、如果是在window环境下,可以用一敏念下方法:

使用stdlib.h头文件声明的system()函数,调用液祥系统命令dir,把c:目录下文件列表写入文件dir.txt中

2、使用dirent.h头文件中声明的opendir(),readdir()函数;

3、如果没有dirent.h,可以使用io.h头文件中声明的_findfirst(),_findnext()函数:

可以用rmdir

不过

限制是

文件夹必须是空的

如果文件仿颂悄夹非空

需要遍历递归调用remove和rmdir删除所有文件和子文樱笑件夹。

事备渣实上

系统命令的rm

-r

也是rmdir和remove

递归的。

//以下是c++方法

#include <stdio.h>

#include <io.h>

#include <string.h>

#include <string>

#include <iostream>

using namespace std

#define WIDTH 300

#define H 40

int len = 0

string files[1000]

void getFiles(string path, int deepth)

{

    long hFile = 0

    struct _finddata_t fileinfo

    string p

    if((hFile = _findfirst(p.assign(path).append("\\*").c_str(),&fileinfo)) !=  -1)

    {

        do

   友陆睁     { 

            if(fileinfo.attrib &  _A_SUBDIR)

            {

                //想取子文件夹里好岁的内容,这里可以用以下代码,deepth控制深度

                //getFiles(path + "/" + fileinfo.name, deepth + 1)

            }

            else

            {

                files[len] = fileinfo.name

                ++len

            }

        }while(_findnext(hFile, &fileinfo)  == 0)

        _findclose(hFile)

    }

}

string path = "E:/"

void main()

{

    int i, res

    getFiles(path, 0)

    for (i = 0 i 悉搭< len ++ i)

        puts(files[i].c_str())

    Sleep(800)

    return

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/8193996.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存