module Directory (doesDirectoryExist) where import NHC.GreenCard import NHC.FFI %-#include %-#include %-#define TRUE 1 %-#define FALSE 0 %fun doesDirectoryExist :: FilePath -> IO Bool %call (filePath fp) %code % struct stat st; % int err = stat(fp,&st); % if ((err==0) && S_ISDIR(st.st_mode)) b=TRUE; % else { % err=0; /* MUST reset err flag! */ % b=FALSE; % } %result (bool b)