From d8f207d29d420cb4d21f7934eadf0937705b0a09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=80=E7=9B=B4=E5=90=91=E5=89=8D=E7=9A=84=E5=B0=8F?= =?UTF-8?q?=E7=99=BD=E7=BE=8A?= Date: Tue, 25 Jul 2023 06:21:27 +0000 Subject: [PATCH] update PR/2023/src/main.c. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 一直向前的小白羊 --- PR/2023/src/main.c | 37 +++++++++++++++++++++++++++++-------- 1 file changed, 29 insertions(+), 8 deletions(-) diff --git a/PR/2023/src/main.c b/PR/2023/src/main.c index 2737e05..a27ecc4 100644 --- a/PR/2023/src/main.c +++ b/PR/2023/src/main.c @@ -14,14 +14,37 @@ #include #include +void print_gitee_ids(const char *directory_path); + int main() { // 其名称设置成Gitee-ID的文件将置于该源代码文件的上级目录 - DIR *dir = opendir(".."); - if (dir == NULL) { - perror("Unable to open parent directory"); + printf("欢迎使用 Gitee-ID 识别程序!\n"); + printf("本程序将在当前目录的上级目录查找以 Gitee-ID 命名规则命名的文件。\n"); + printf("按下 Enter 键开始查找...\n"); + getchar(); + + char current_directory[PATH_MAX]; + if (getcwd(current_directory, sizeof(current_directory)) == NULL) { + perror("获取当前目录失败"); return 1; } + printf("当前目录:%s\n", current_directory); + + print_gitee_ids(".."); + + printf("\n查找完成!按下 Enter 键退出程序。\n"); + getchar(); + return 0; +} + +void print_gitee_ids(const char *directory_path) { + DIR *dir = opendir(directory_path); + if (dir == NULL) { + perror("无法打开上级目录"); + return; + } + struct dirent *entry; while ((entry = readdir(dir)) != NULL) { @@ -30,14 +53,12 @@ int main() { // 不能以特殊字符结尾。 // 1. 本程序只处理常规文件(排除目录、软链接等)。 // 2. 本程序会排除“.”和“..”目录项,也会排除带有扩展名的文件。 - if (entry->d_type == DT_REG && + if (entry->d_type == DT_REG && strchr(entry->d_name, '.') == NULL) { - printf("Greetings from %s!\n", entry->d_name); + // 满足Gitee-ID命名规则的文件 + printf("找到 Gitee-ID:%s\n", entry->d_name); } } closedir(dir); - - printf(":)\n"); - return 0; } -- Gitee