Fwd: [Pyobjc-dev] How do I copy file Metadata ?
Brought to you by:
ronaldoussoren
From: st c. <stc...@gm...> - 2006-05-12 17:16:51
|
(Resending because I forgot to cc the list) Thank you very much. NSFileManager.copyPath did the job. xattr also is very helpful: My application makes standard html files. They cannot however be viewed correctly by Safari (etc) because their links are not local filesystem relative. Therefore I want my application to set their defaults such that it gets to open the files it makes, in the same way as "Get Info" in the Finder allows a user to specify what should open a given file. I set z.html's default opener to my program, and then used xattr so: import xattr z =3D xattr.xattr("z.html") xattr.setxattr("y.html", 'com.apple.ResourceFork', z['com.apple.ResourceFor= k']) and now y.html was also opened. My question is: how do I make the contents of com.apple.ResourceFork. There seems to be some xml in there but also a lot of binary. Or is there some other way of doing this? Thanks, Sengan On 5/11/06, Bob Ippolito <bo...@re...> wrote: > > On May 11, 2006, at 5:41 PM, st cnx wrote: > > > Hi, > > > > The tool I am writing needs to copy some files while preserving their > > metadata. I managed to get the following to read what I believe to be > > file metadata: > > > > import Carbon > > import Carbon.CF > > import Carbon.Launch > > > > f =3D Carbon.CF.toCF('file://localhost/Library/Internet%20Plug-Ins/ > > RealPlayer%20Plugin').CFURLCreateWithString(None) > > > > Carbon.Launch.LSCopyItemInfoForURL(f, -1) > > > > Carbon.Launch.LSCopyKindStringForURL(f).CFShow() > > > > > > However I need to set it on the copied files. How do I do this? > > Probably LaunchServices is the wrong tool, but I can't find the right > > one. > > The easiest way would probably be to use NSFileManager from PyObjC. > LaunchServices is definitely not going to do what you want, but > something in Carbon.File might (though it may take a lot of work). > > If you only care about Mac OS X 10.4+ you could simply use /usr/bin/ > cp or use the xattr module to pick out all of the extended attributes > (the metadata lives there). > > http://undefined.org/python/#xattr > > -bob > > |