#include #include #include #include "fileinfo.h" struct fileInfo* newFileInfo(const char *filePath) { if (!strrchr(filePath, '.')) return NULL; struct fileInfo *info = malloc(sizeof(struct fileInfo)); info->fullname = malloc(strlen(filePath)+1); strcpy(info->fullname, filePath); info->_base = malloc(strlen(basename(info->fullname))+1); strcpy(info->_base, basename(info->fullname)); char *dot = "."; info->name = strtok(info->_base, dot); info->ext = strtok(NULL, dot); if (info->name && info->ext) return info; freeFileInfo(info); return NULL; } void freeFileInfo(struct fileInfo *info) { free(info->fullname); free(info->_base); free(info); }