在C中仅显示客户端/服务器中文件夹的某些内容

时间:2015-03-04 17:58:22

标签: c file client server

我正在用C开发一个客户端/服务器程序,我希望在文件夹中看到文件内容。该程序有效,但我只会看到一个.txt文件,而不是所有文件。我怎样才能做到这一点?谢谢!

DIR *dp;           
int rv,rv1,stop_received,nread2;       
struct dirent *ep;   
char buffer[300],appoggio[1000],buffer2[300];    
        dp = opendir ("./");
        if (dp != NULL){
            while (ep = readdir(dp)){
               if ((strcmp(ep->d_name, ".") == 0) 
|| (strcmp(ep->d_name,"..") == 0) 
|| (strcmp(ep->d_name, "SERVERD.c\0") == 0)
||(strcmp(ep->d_name, "h") == 0)
|| (strcmp(ep->d_name, "Menù segreteria") == 0)
||(strcmp(ep->d_name, "Menù docente") == 0)) 
continue;
           strcpy(buffer,ep->d_name);
           strcat(buffer,"\n");
           send(conn_fd, buffer,strlen(buffer), 0);   

            }
            (void) closedir(dp);
        }else
            perror ("Couldn't open the directory");

1 个答案:

答案 0 :(得分:0)

只需为调用`continue:

的条件添加另一个条件
|| ((4 <= strlen(ep->d_name)) && (strstr(ep->d_name, ".txt") == (ep->d_name + strlen(ep->d_name) - 4)))

注意:4源自".txt"

中的字符数

注意^ 2:如果远没有效率,上述测试的编码方式。例如,在同一个“字符串”上调用strlen()两次并不好。