文件目录获取获取文件名类型demo

本文介绍了一个程序,用于解析文件类型,并遍历指定目录下所有文件,输出其类型。程序通过命令行参数接收目录名,使用dirent库进行目录操作,根据不同文件类型输出特定信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


#include <stdio.h>
#include <dirent.h>

 

void type(unsigned char dType)
{
   switch(dType){

       case DT_BLK:
                puts("      This is a block device. ");
                break;
       case DT_CHR:
                puts("   This is a character device.");
                break;

       case DT_DIR:
                puts("   This is a directory.");
                break;

       case DT_FIFO:
                puts("  This is a named pipe (FIFO).");
                break;

       case DT_LNK:
                puts("  This is a symbolic link.");
                break;

       case DT_REG:
                puts("   This is a regular file.");
                break;

       case DT_SOCK:
                puts("  This is a Unix domain socket.");
                break;

       case DT_UNKNOWN:
                puts("The file type is unknown.");
                break;

        default:
                break;

   }
}

 

 


int main(int argc,char** argv)
{
        DIR *dirptr = NULL;
        struct dirent *entry;

        if(argc<2)
        {
                printf("the command need a dirname\n");
                return 1;
        }

        if(argc>2)
        {
                printf("the program can only deal with one dir at once\n");
                return 1;
        }

        if((dirptr = opendir(argv[1])) == NULL)
        {
                printf("open dir error !\n");
                return 1;
        }
        else
        {
                while (entry = readdir(dirptr))
                {
                        //printf("%s\n", entry->d_name);
                        printf("%s\t\t", entry->d_name);
                        type(entry->d_type);
                }
                closedir(dirptr);
        }

        return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值