在Ubuntu中,你可以使用readdir函數來讀取目錄內容。為了過濾特定類型的文件,你可以在遍歷目錄時檢查每個文件的擴展名。以下是一個使用C語言編寫的示例,展示了如何使用readdir函數過濾特定類型的文件:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <dirent.h>
#include <sys/stat.h>
int main(int argc, char *argv[]) {
if (argc != 3) {
printf("Usage: %s <directory> <extension>\n", argv[0]);
return 1;
}
const char *dir_path = argv[1];
const char *ext = argv[2];
DIR *dir = opendir(dir_path);
if (dir == NULL) {
perror("opendir");
return 1;
}
struct dirent *entry;
while ((entry = readdir(dir)) != NULL) {
// 獲取文件名
char *filename = entry->d_name;
// 檢查文件擴展名
if (strstr(filename, ext) != NULL) {
printf("%s\n", filename);
}
}
closedir(dir);
return 0;
}
編譯并運行這個程序,傳入要讀取的目錄路徑和要過濾的文件擴展名。例如,如果你想列出目錄中所有的.txt文件,可以這樣運行:
gcc filter_files.c -o filter_files
./filter_files /path/to/directory .txt
這個程序會輸出指定目錄中所有擴展名為.txt的文件。