• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: fileHFSCreatorCode & fileAttributesAtPath:traverseLink on app bundles
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: fileHFSCreatorCode & fileAttributesAtPath:traverseLink on app bundles


  • Subject: Re: fileHFSCreatorCode & fileAttributesAtPath:traverseLink on app bundles
  • From: Mike <email@hidden>
  • Date: Tue, 08 Apr 2008 18:37:55 -0700

Ken Thomases wrote:
On Apr 7, 2008, at 10:49 PM, Mike wrote:
In that case, how do I get the fullpath to the item from the iterator? There doesn't seem to be any key in the info dictionary for the current item's fullpath.

Huh? You mean the enumeratedItem from your original code snippet? You never indicated where you got that from. I assumed it was already a full path. That's how your code snippet used it.


If you're instead getting a relative path from an NSDirectoryEnumerator, you should combine that relative path with the original directory path that you passed to -[NSFileManager enumeratorAtPath:]. The documentation for that method shows you how to do that with stringByAppendingPathComponent:.

If you really are using NSDirectoryEnumerator to scan a large hierarchy for applications, be sure to use an inner auto-release pool to clean up intermediate objects as you go. Also, once you detect that a path corresponds to a bundle (+[NSBundle bundleWithPath:] returns non-nil), use -[NSDirectoryEnumerator skipDescendents] to avoid enumerating the contents of the bundle -- unless you're really interested in applications buried inside of other applications, it will just be wasted time.

Yeah, I found that out the hard way. I just check for bundle or .app and when I hit one, I immediately check its creator code. If it's not the one I want, I skip descendents and it works fine. Before that it would iterate everything and when it hit a huge app like Garageband it would take forever. And I am enumerating from the vol. root.


You were right - I tried using the item returned from the iterator for the fullpath and it works fine. Thanks for the help!

Mike
_______________________________________________

Cocoa-dev mailing list (email@hidden)

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:
This email sent to email@hidden


  • Follow-Ups:
    • Re: fileHFSCreatorCode & fileAttributesAtPath:traverseLink on app bundles
      • From: Douglas Davidson <email@hidden>
References: 
 >fileHFSCreatorCode & fileAttributesAtPath:traverseLink on app bundles (From: Mike <email@hidden>)
 >Re: fileHFSCreatorCode & fileAttributesAtPath:traverseLink on app bundles (From: Ken Thomases <email@hidden>)
 >Re: fileHFSCreatorCode & fileAttributesAtPath:traverseLink on app bundles (From: Mike <email@hidden>)
 >Re: fileHFSCreatorCode & fileAttributesAtPath:traverseLink on app bundles (From: Ken Thomases <email@hidden>)

  • Prev by Date: Re: NSUInteger question
  • Next by Date: Programmatic binding not working both ways?
  • Previous by thread: Re: fileHFSCreatorCode & fileAttributesAtPath:traverseLink on app bundles
  • Next by thread: Re: fileHFSCreatorCode & fileAttributesAtPath:traverseLink on app bundles
  • Index(es):
    • Date
    • Thread