我想獲得文件夾中的文件以外的目錄數量,但我無法獲得正確的結果。有人幫我解決這個問題?特別是我應該發送到isDirectory()函數?如何獲取目錄中的目錄數量?
int listFilesIndir(char *currDir)
{
struct dirent *direntp;
DIR *dirp;
int x ,y =0 ;
if ((dirp = opendir(currDir)) == NULL)
{
perror ("Failed to open directory");
return 1;
}
while ((direntp = readdir(dirp)) != NULL)
{
printf("%s\n", direntp->d_name);
x= isDirectory(dirp);
if(x != 0)
y++;
}
printf("direc Num : %d\n",y);
while ((closedir(dirp) == -1) && (errno == EINTR)) ;
return 0;
}
int isDirectory(char *path)
{
struct stat statbuf;
if (stat(path, &statbuf) == -1)
return 0;
else
return S_ISDIR(statbuf.st_mode);
}
你會得到什麼而不是「正確的結果」? – 2013-04-01 20:37:44
將「dirp」傳遞給isDirectory()似乎是錯誤的。這是一個錯字嗎? – kkrambo
這個評論可能是完全沒有幫助的,但它讓我的眼睛看到如此多的代碼行用於概念化的單行代碼...... ls -d/*/| wc -l' –
shx2