我正在用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");
答案 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()
两次并不好。