#include wxString GetMIME(wxString FilenameInc){ wxString MIMEResult; // Check if file exists first before doing anything with it. if (!wxFileExists(FilenameInc)){ // File doesn't exist so return. wxMessageBox(_("The file with the filename given doesn't exist."), _("Error opening picture/audio file"), wxICON_ERROR); return wxEmptyString; } #if defined(__WIN32__) // TODO: Sort out Win32. #else #include FILE *MIMEIn; char MIMEData[512]; // Build Command Line. wxString FilenameIncEscaped = FilenameInc; FilenameIncEscaped.Replace(wxT(" "), wxT("\\ ")); wxString FileCommandLine; FileCommandLine.Append("file -b --mime-type "); FileCommandLine.Append(FilenameIncEscaped); if (!(MIMEIn = popen(FileCommandLine.mb_str(), "r"))){ wxMessageBox(_("The file with the filename given doesn't exist."), _("Error opening picture/audio file"), wxICON_ERROR); return wxEmptyString; } while(fgets(MIMEData, sizeof(MIMEData), MIMEIn) != NULL){ MIMEResult.Append(wxString::FromUTF8(MIMEData)); } pclose(MIMEIn); MIMEResult.Trim(); #endif /*#else #include const char *MIMEType; magic_t MagicCookie = magic_open(MAGIC_MIME); magic_setflags(MagicCookie, MAGIC_MIME_TYPE); if (!MagicCookie){ wxMessageBox(_("An error occured with the support library for getting the picture/audio type."), _("Error opening picture/audio file"), wxICON_ERROR); return wxEmptyString; } if (magic_load(MagicCookie, NULL) != 0) { wxMessageBox(_("An error occured whilst determining the picture/audio type."), _("Error opening picture/audio file"), wxICON_ERROR); return wxEmptyString; } MIMEType = magic_file(MagicCookie, FilenameInc.mb_str()); MIMEResult = wxString::FromUTF8(MIMEType); magic_close(MagicCookie); #endif*/ return MIMEResult; }