I might be missing something, but can't you just open the file with [[NSWorkspace sharedWorkspace]openURL:<fileURL>]?
___m i c h a e l s t a r k e____ geschäftsführer HicknHack Software GmbH www.hicknhack-software.com ___k o n t a k t____ +49 (170) 36 86 1 36 cont...@hicknhack.com ___H i c k n H a c k S o f t w a r e G m b H____ geschäftsführer - maik lathan | andreas reischuck | michael starke bayreuther straße 32 01187 dresden amtsgericht dresden HRB 30351 sitz - dresden > On 15.03.2014, at 21:56, Luther Baker <lutherba...@gmail.com> wrote: > > I'm an iOS developer talking a walk on the OSX side and have a question > about programmatically mounting sparse bundles ... or really just any dmg. > > My experimental project is to write a little statusbar application to mount > and unmount disk images. I've created a few of these images in my own > "Volumes" directory as follows: > > /Users/me/Volumes/me.sparsebundle > > For the time being, I am hard-wiring logic in a menu selection handler to > actually mount these objects. > > I've been digging into Disk Arbitration and I've come up with the following: > > - (IBAction)mountMe:(id)sender { > DASessionRef sessionRef = DASessionCreate(kCFAllocatorDefault); > CFURLRef volumeURLRef = (__bridge CFURLRef)[NSURL fileURLWithPath:@ > "/Users/me/Volumes/me.sparsebundle"]; > DADiskRef diskRef = DADiskCreateFromVolumePath(kCFAllocatorDefault, > sessionRef, volumeURLRef); > CFURLRef mountPath = NULL; > DADiskMountOptions mountOptions = kDADiskMountOptionDefault; > DADiskMountCallback mountCallback = NULL; > void *context = NULL; > DADiskMount(diskRef, mountPath, mountOptions, mountCallback, context); > CFAllocatorDeallocate(kCFAllocatorDefault, diskRef); > CFAllocatorDeallocate(kCFAllocatorDefault, sessionRef); > } > > *ANY* suggestions, even tangental (especially around memory management) are > fair game here. I'd appreciate any input as I'm just starting to read about > allocation, etc. > > But more to the point, I don't think DADiskCreateFromVolumePath is what I > want. It seems that DADiskRef is NULL when I run this. Clearly, the most > intimidating method in there is DADiskCreateFromIOMedia ... and I'm afraid > that is the one I'm going to have to use. > > And, am I really trying to mount a "disk" as Disk Arbitration understands > it? I'm not yet dealing with things like fstab, etc which I know very > little about -- but should I start digging that way? I did come across a > nice github project <http://tommetge.github.io/VolumeManager/> but > unfortunately I can't actually find any methods in there to mount ... only > things like umount or eject. Notably, the open source project does use > 'getmntinfo' which leads me to look at the BSD mount man page ... but I > before going there I want to make sure I'm not _supposed_ to do this in > within Disk Arbitration. There is a DADiskCreateFromBSDName which seems > like it might be similar? > Anyway, any thoughts on this? And in general, is this fundamental stuff > covered in exemplary fashion anywhere? Would the OSX Internals books I've > seen dive into this? I'm assuming that if I've encryped my sparsebundle > that I'd be prompted by the OS for my password, which is fine for my first > pass but I'd eventually like to subsume that logic within my app - if for > no other reason than to simply better understand the partition management > frameworks. > > Thanks in advance for even 1 brief minute of your time. I'll begin trying > the alternatives mentioned above in Disk Arbitration. > -Luther > _______________________________________________ > > Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) > > Please do not post admin requests or moderator comments to the list. > Contact the moderators at cocoa-dev-admins(at)lists.apple.com > > Help/Unsubscribe/Update your Subscription: > https://lists.apple.com/mailman/options/cocoa-dev/michael.starke%40hicknhack-software.com > > This email sent to michael.sta...@hicknhack-software.com _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com