Back to index

lightning-sunbird  0.9+nobinonly
GetMetadataForFile.c File Reference
#include <CoreFoundation/CoreFoundation.h>
#include <CoreServices/CoreServices.h>

Go to the source code of this file.


Boolean GetMetadataForFile (void *thisInterface, CFMutableDictionaryRef attributes, CFStringRef contentTypeUTI, CFStringRef pathToFile)

Function Documentation

Boolean GetMetadataForFile ( void thisInterface,
CFMutableDictionaryRef  attributes,
CFStringRef  contentTypeUTI,
CFStringRef  pathToFile 

Definition at line 51 of file GetMetadataForFile.c.

    /* Pull any available metadata from the file at the specified path */
    /* Return the attribute keys and attribute values in the dict */
    /* Return TRUE if successful, FALSE if there was no data provided */
  Boolean success;
  CFURLRef fileURL = CFURLCreateWithFileSystemPath(kCFAllocatorDefault, pathToFile, kCFURLPOSIXPathStyle, false);
  CFReadStreamRef stream = CFReadStreamCreateWithFile(kCFAllocatorDefault, fileURL);

  CFPropertyListFormat format;
  CFStringRef errorString = NULL;
  CFPropertyListRef ticket = CFPropertyListCreateFromStream(kCFAllocatorDefault,
                             /*streamLength*/ 0,
  if (errorString)
    printf("failed creating property list from stream\n");
    printf("error = %s\n", (const char*) errorString);
    success = FALSE;
    CFTypeRef value;
    value = CFDictionaryGetValue(ticket, kMDItemTitle);
     if (value)
       CFDictionarySetValue(attributes, kMDItemTitle, value);
     value = CFDictionaryGetValue(ticket, kMDItemTextContent);
     if (value)
       CFDictionarySetValue(attributes, kMDItemTextContent, value);
     value = CFDictionaryGetValue(ticket, kMDItemDisplayName);
     if (value)
       CFDictionarySetValue(attributes, kMDItemDisplayName, value);
     CFDateFormatterRef dateFormatter = CFDateFormatterCreate(NULL, NULL, kCFDateFormatterLongStyle, kCFDateFormatterLongStyle);
     value = CFDictionaryGetValue(ticket, kMDItemLastUsedDate);

     if (value && dateFormatter)
       printf("trying to parse date \n");
       CFDateRef curDate = CFDateFormatterCreateDateFromString(NULL, dateFormatter, value, NULL);
       printf("got cur date\n");
       if (curDate)
         CFDictionarySetValue(attributes, kMDItemLastUsedDate, curDate);
     success = TRUE;
  // contents are kMDItemTextContent
  return success;    

Here is the call graph for this function: