OS X File information question

Discussion in 'Ruby' started by Jonathan Waddilove, Nov 21, 2006.

  1. OS X (tiger) stores some useful information about files, including
    "where from" and "spotlight commnets".

    Is there an (easy) way to access these fields from Ruby?

    Many thanks, Jonathan

    --
    Posted via http://www.ruby-forum.com/.
    Jonathan Waddilove, Nov 21, 2006
    #1
    1. Advertising

  2. On 21/nov/06, at 19:41, Jonathan Waddilove wrote:

    > OS X (tiger) stores some useful information about files, including
    > "where from" and "spotlight commnets".
    >
    > Is there an (easy) way to access these fields from Ruby?


    Give a look here: http://developer.apple.com/macosx/spotlight.html
    Under the "Command-Line tool" section you can find something
    interesting.

    For example:

    piastrella:~/Desktop$ mdls -name kMDItemFinderComment test.txt
    test.txt -------------
    kMDItemFinderComment = "This is a Spotlight comment."

    You could wrap that tool in a Ruby class or something like that.

    >
    > Many thanks, Jonathan


    --
    Gabriele Marrone
    Gabriele Marrone, Nov 21, 2006
    #2
    1. Advertising

  3. It's a little more tricky writing to these: to write a finder comment
    (now called spotlight comment, but implementation-wise it's the same)
    you need to send an appleevent to the finder (there'a a code sample on
    developer.apple.com for this).

    To set the where_from, you need to use the undocumented api
    MDItemSetAttribute, since in theory meta deta doesn't just get set at
    random times, but when the importer for that file is run.
    MDItemSetAttribute does however enable you to set metadata at will
    (those changes would of course be blown away if the user chose to
    reindex their files.

    Fred

    --
    Posted via http://www.ruby-forum.com/.
    Frederick Cheung, Nov 21, 2006
    #3
  4. Jonathan Waddilove

    has Guest

    Frederick Cheung wrote:

    > It's a little more tricky writing to these: to write a finder comment
    > (now called spotlight comment, but implementation-wise it's the same)
    > you need to send an appleevent to the finder (there'a a code sample on
    > developer.apple.com for this).


    You can do AEs from C but it's a bit tedious. Much easier with a
    high-level bridge, e.g.:

    require "appscript"

    pth = "/path/to/some file or folder"
    txt = "some comment"

    AS.app("Finder").items[MacTypes::Alias.path(pth)].comment.set(txt)

    Or, if you want to avoid dependencies and speed isn't an issue, you
    could just use osascript to invoke an AppleScript via the command line.
    Kludgy, but it'll do the job.

    If portability is a must though, bear in mind that some OS X users run
    third-party file managers in place of the Finder. (Not like the ol' OS
    7-9 days when Finder availability was pretty well guaranteed.) I think
    there's also some very crusty Carbon APIs for accessing Finder-related
    data, though can't remember anything about them. Probably in the Carbon
    File Manager or somewhere like that.


    For querying files, the OP might also want to check out the Carbon or
    Cocoa Spotlight APIs:


    http://developer.apple.com/documentation/Carbon/Conceptual/SpotlightQuery/index.html

    There's a 'RubySpotlight' example included with RubyCocoa 0.4.2 that
    may be of help here.

    has
    has, Nov 22, 2006
    #4
  5. Gabriele, Fred

    Thank you both for the help. I'll poke around in the documentation,
    first task is to extract the settings in those fields (changing them
    from Ruby is later in my game plan)

    Many thanks for your help.

    --
    Posted via http://www.ruby-forum.com/.
    Jonathan Waddilove, Nov 22, 2006
    #5
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. z. f.
    Replies:
    0
    Views:
    667
    z. f.
    Feb 3, 2005
  2. subrato
    Replies:
    8
    Views:
    907
    Juan T. Llibre
    Mar 14, 2006
  3. clercmedia
    Replies:
    2
    Views:
    32,239
    clercmedia
    Dec 9, 2005
  4. lerenard001
    Replies:
    0
    Views:
    415
    lerenard001
    Jul 7, 2008
  5. lerenard001
    Replies:
    0
    Views:
    457
    lerenard001
    Jul 9, 2008
Loading...

Share This Page