Acessando Diretórios em C

O programa é para abrir um diretório e exibir o nome dos arquivos ... ou seja, se houver um arquivo ... deve dizer FILE .... else DIRECTORY .. mas o programa exibe todos os arquivos como diretório ..

Alguém poderia pls verificar o código por quaisquer erros .... thnx

#include<stdio.h>
#include<dirent.h>
#define DIR_path "root/test"      
main()
 {
   DIR *dir;
   dir=opendir(DIR_PATH);
   printf("THe files inside the directory :: \n");

  struct dirent *dent;
  if(dir!=NULL)
   {

       while((dent=readdir(dir)))
         {
            FILE *ptr;
            printf(dent->d_name);

              if(ptr=fopen(dent->d_name,"r"))
                {
                     print("\tFILE\n");
                     fclose(ptr);
                }
              else
                    printf("\t DIRECTORY\n");
        }
           close(dir);
    }
    else
            printf("ERROR OPENIN DIRECTORY");

}

questionAnswers(3)

yourAnswerToTheQuestion