Force item icon refresh in Finder 10.8.2

Can anyone lead me to any useful link for forcing file icon refresh in new 10.8.2 version of Finder?

I'm working on this problem for last few days and I have tried almost any solution which can be found on internet, but those are all old samples which are compatible with old versions of Finder and do not work on newer versions of Finder (which are rebuilt on Cocoa framework).

I tried to use few commands from apple script tool to update files in Finder ('update item with necessity'), I tried few plugins from internet (nudge, finder-Refresh...), I also tried support for communication with external Mac application through ScriptingBridge framework (although very useful) but nothing gave me a desired result.

I have noticed that NSWorkspace class contains two methods: iconForFile and setIcon:forFile, and although I could integrate this two functions in application, iconForFile function is returning image of reduced quality, so I'm stuck in that direction also.

Any idea or suggestion will be highly appreciated.

Answers


Create a visible file and delete it. This will refresh finder window.


I had this problem too. I had a .app i wanted to change the icon of.

Structure of my .app:

  • ...noida.app/
    • ...noida.app/Contents/
      • ...
    • ...noida.app/Contents/Resources
      • ...noida.app/Contents/Resources/myicon.icns
    • ...noida.app/Contents/MacOS
      • ...
    • ...noida.app/Contents/plist.Info

Now I would change the icon in the resources folder. Then I made new files in all folders. It wouldn't work. The only place that i could make a new file tha twould update the icon was in the ...noida.app/ so i made new file at ...noida.app/junk folder and then it updated.

Very interesting.


To reset for every application under Mountain Lion, try the following in Terminal:

/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -kill -seed -r

That will kill all existing objects in launch services and reseed them recursively from the standard locations (/Applications, etc).

If you have a specific application whose data you need to override existing information, you can try:

/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -f <path>

Although I've had limited luck with the latter working in some cases, so you may end up doing the former afterwards.


I was just fighting with this on 10.10 (although it's been a problem for years now) and the only solution I found to force refreshing a bundles icon in the Finder was to:

  1. Open the "Get Info Window" of the bundle you want to update and select the icon by clicking on it.
  2. Paste another image as the icon (you could have copied this from another file or from any other location with this pasteboard data).
  3. Press return and make sure the icon changed in the Finder.
  4. Delete the icon by pressing the delete key.

After that the bundles icon was refreshed to the new .icns file in the bundles resource folder.


Type into Terminal

killall Finder

Then

killall Dock

If you need to update one Application icon, just touch the App.app folder.

Close the finder windows and issue the command:

touch /Applications/App.app

Need Your Help

C# - Declaration of types within a namespace

c# delegates types namespaces declaration

what could be a possible use of declaring types within a namespace but not in a class.

Detect when the free space on disk change

objective-c osx filesystems disk

I need to monitor the available free space on the disk using objective-c, especially when it changes.

About UNIX Resources Network

Original, collect and organize Developers related documents, information and materials, contains jQuery, Html, CSS, MySQL, .NET, ASP.NET, SQL, objective-c, iPhone, Ruby on Rails, C, SQL Server, Ruby, Arrays, Regex, ASP.NET MVC, WPF, XML, Ajax, DataBase, and so on.