运行当前位置,显示文件全名,检查是否扩展名多次重叠

该程序是一个文件列表和扩展名检查工具,主要功能包括:

  1. 列出当前目录下所有文件(跳过"."和".."目录),区分显示文件和目录
  2. 检查系统是否隐藏文件扩展名,并给出Windows系统下显示扩展名的设置提示
  3. 当文件名不含点号时提醒用户扩展名可能被隐藏

程序通过标准C库函数实现目录遍历和文件信息获取,最后提示用户按任意键退出。

cpp 复制代码
#include <stdio.h>
#include <dirent.h>
#include <string.h>
#include <sys/stat.h>


void list_files() {
    DIR *dir;
    struct dirent *entry;
    struct stat file_stat;
    
    // 打开当前目录
    dir = opendir(".");
    if (dir == NULL) {
        perror("无法打开目录");
        return;
    }
    
    printf("当前目录下的文件列表:\n");
    printf("=====================\n");
    
    // 读取目录中的每个条目
    while ((entry = readdir(dir)) != NULL) {
        // 跳过 "." 和 ".." 目录
        if (strcmp(entry->d_name, ".") == 0 || strcmp(entry->d_name, "..") == 0) {
            continue;
        }
        
        // 获取文件信息
        if (stat(entry->d_name, &file_stat) == 0) {
            if (S_ISDIR(file_stat.st_mode)) {
                printf("[目录] %s/\n", entry->d_name);
            } else {
                printf("[文件] %s\n", entry->d_name);
            }
        } else {
            printf("[未知] %s\n", entry->d_name);
        }
    }
    
    closedir(dir);
}

void check_extension_hiding() {
    printf("\n扩展名隐藏检查:\n");
    printf("=====================\n");
    
    // 在Windows系统中,默认会隐藏已知文件类型的扩展名
    // 这个函数主要是提醒用户注意这一点
    printf("注意:在某些操作系统(如Windows)中,已知文件类型的扩展名可能被默认隐藏。\n");
    printf("请确保在文件资源管理器中启用了显示文件扩展名的选项。\n");
    printf("在Windows中设置方法:查看 → 显示 → 文件扩展名\n");
}

int main() {
    printf("文件列表和扩展名检查工具\n");
    printf("==========================\n\n");
    
    list_files();
    check_extension_hiding();
    
    printf("\n提示:如果看到文件名中没有点号(.),可能表示扩展名被隐藏。\n");
    printf("例如:'document' 而不是 'document.txt'\n");
    puts("任意键退出");
    getchar();
    return 0;
}
相关推荐
染予38 分钟前
上位机时间戳精度不够,时间无法对比怎么解决
单片机·嵌入式硬件
現実君43 分钟前
关于MCU下位替换FPGA的经验与方案
单片机·嵌入式硬件·fpga开发
m0_547486661 小时前
《单片机原理及应用》全套PPT课件2026版
单片机·嵌入式硬件
十月的皮皮1 小时前
STM32从零到量产开发:四路继电器工业控制模块开发原理小灶 · 合集
stm32·单片机·嵌入式硬件·stm32cubemx·hal库
小羊先生car1 小时前
F429-HAL 库驱动框架(2026/7/22)
单片机·嵌入式硬件
小羊先生car2 小时前
F429-SysTick(2026/7/22)
stm32·单片机·嵌入式硬件
Dlrb12112 小时前
ARM---I.MX6ULL时钟系统详解、时钟树、系统时钟配置等
单片机·嵌入式硬件·arm·imx6ull·pll·时钟树·cortex-a7
WWJA王文举2 小时前
单片机参数如何掉电保存:Flash、EEPROM和配置存储完整设计
数据库·stm32·mongodb·c#
智购科技无人售货机工厂2 小时前
自动售货机硬件选型避坑:单片机 / 树莓派 / ESP32 怎么选?~YH
人工智能·单片机·嵌入式硬件·r语言·swift·perl·symfony
hongmai6668883 小时前
ESP32-C61-WROOM-1-N8R2:Wi-Fi 6与RISC-V融合的中坚力量
人工智能·单片机·嵌入式硬件·物联网·智能家居·risc-v