As far as I know, for an icon on Windows you must use an
.ico file. Although in Win9x days one could get away by using a renamed
.bmp, but they look just terrible next to fancy Aero icons – especially since a typical ICO contains several image sizes with transparency layers.
You can use ImageMagick to convert a PNG image to an ICO file:
convert foo.png foo.ico
or if you have PNGs of several sizes,
convert foo-*.png foo.ico
The other part, making Windows use your icon, is easier:
desktop.ini file in your directory, with the following contents:
Relative paths for
IconFile should be supported; they will also work over the network.
See this MSDN article for detailed instructions on setting the folder icon programmatically.
Mark the directory as either "Read-only" (preferred) or "System":
attrib +r Music
Without this, Explorer won't even look for
desktop.ini customizations, for performance reasons (as explained in The Old New Thing).
desktop.ini as hidden, so that it won't clutter the file list:
attrib +h +s desktop.ini