How to Change the Icon for a File Type in Windows?

It’s surprising that Windows doesn’t have a built-in option to allow users to set custom icons for file types. If you have a custom file type and the corresponding program doesn’t have a nice-looking icon in its .exe or .dll resource, you can change or customize the default icon for that file type manually.

This article explains how to change the default icon for a file type using different methods in Windows. Instructions apply to all versions of Windows, including Windows 10

How to Change the Default Icon for a File Type?

You can change the default icon for a file type using the built-in Registry Editor. In the second method, let’s see how to change the default icon using Default Programs Editor.

Method 1: Change file type icon using the Registry Editor

Let’s assume you want to change the file type icon for .txt files, and here is how to do that.

  1. Click Start, type regedit.exe and press ENTER
  2. Navigate to the following branch:
    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.txt\UserChoice
  3. In the right-pane, note down the value data for Progid (e.g. txtfile). This is the user chosen (via Default Programs or Open with dialog) Programmatic Identifier for the file extension.

    Registry Branch Not Found?

  4. If the UserChoice branch does not exist, navigate to the following branch:
    HKEY_CLASSES_ROOT\.txt
  5. In the right-pane, note down the (default) value data (e.g. txtfile).
  6. Navigate to the following key (where txtfile is the Prog ID noted in Step 2 or Step 4 above)
    HKEY_CLASSES_ROOT\txtfile\DefaultIcon

    If the DefaultIcon key does not exist by default, you need to create it manually.

  7. In the right-pane, double-click (default) and mention the path to your custom icon (.ico file or reference to a icon inside a EXE/DLL file. See “Icons From DLL/EXE Files” paragraph at the end of this article).
  8. Edit the (default) value data, mentioning the path to a icon file. For this example, I used a notepad icon file from the web, saved it to a permanent location and mentioned the full path.If you’re using a custom icon file, make sure it’s at least 128 x 128, although it’s not a rule but this is to make sure icons look nice when folder view is set to large or extra large icons.
  9. Exit the Registry Editor.
  10. Logoff and login back, or refresh the icons and see if the Text file icons are now updated.

Icons From DLL/EXE Files

If you don’t have a custom .ico file, you may use the icon picker dialog box to choose an icon from a EXE/DLL file. To launch the icon picker dialog, right-click on a folder in your system, click Properties. Click the Customize tab, and click Change Icon… button. Use the icon picker to choose the icon and make a note of the index. The index starts from “0” and you need to proceed vertically when counting (top to bottom.)

Browse to shell32.dll or imageres.dll and note down the icon index, simply cancel the icon picker dialog and close folder properties dialog.

For example, to set the 260th icon in Shell32.dll, mention the following path, in Step 8:

C:\Windows\System32\Shell32.dll,260

To make it clear, this procedure doesn’t change the file type associations, only the icon assigned to that file type. If the icons don’t update even if you restart Windows, clear and rebuild the icon cache.

Additional note

As the icon change is made to the ProgId txtfile in the registry, it also affects the other file extensions that use the same ProgId. For instance, in my system, the txtfile ProgID is being used by .log, .scp & .wtx file extensions. Those files will also show up with the new icon.

To know which file extensions are using a ProgID (i.e., txtfile), run this command in the Command Prompt window:

assoc | findstr /i "txtfile"

How to Change the Icon for a File Type in Windows

RELATED: See article How to Remove File Type Associations Using the Registry Editor for more information on File extension → ProgID mapping.

It’s possible to change the default icon for a file type without affecting other file types. To do that, you’ll need to create a new file class or ProgID for the file extension, and assign the default icon in the newly created file class.


Method 2: Change file type icon using Default Programs Editor

Don’t want to edit the registry to change file type icons? There are 3rd party tools like Default Programs Editor and FileTypesMan that can change the file type icons and association settings.

Default Programs Editor is a very useful tool which helps you to edit file type associations, add or remove AutoPlay handlers and static context menu entries. We’ve covered Default Programs Editor before. Default Programs Editor – A Useful File Association Editor for Windows

In this method, let us see how you can accomplish the task using the Default Programs Editor.

  1. Download Default Programs Editor, unzip and run the executable.
  2. Select File Type Settings
    How to Change the Icon for a File Type in Windows
  3. Click Icon
    How to Change the Icon for a File Type in Windows
  4. Select the file extension for which you want to change the icon, in the next screen.
    How to Change the Icon for a File Type in Windows
  5. This screen shows the current icon for the file type. To change it, click on the Browse button.
    change the default icon for a file type
  6. In the icon picker dialog that’s displayed, browse and locate an icon, or point to a custom .ico file if you have one. The built-in imageres.dll and shell32.dll files contain many icons for you to choose from.
  7. Click the Save Icon button to save the changes to the registry.

    change the default icon for a file type

    As you can see in the screenshot, you also have the option to save the settings to a file. In case you need to apply the changes to several computers, you can output the settings to a .REG file. This can be done by clicking the arrow mark near the Save Icon button, and choosing Save to .reg file. You can deploy or apply the .reg file on other computers without having to run the utility again.

That’s it! The default icon for .txt file type is changed would now refresh or update automatically!

change the default icon for a file type
[Before] .txt files showing standard icons
change the default icon for a file type
[After] .txt files showing custom icons


Method 3: Change file type icon using FileTypesMan

FileTypesMan is an alternative to the Folder Options “File Types” tab (XP-era) in Windows. It displays the list of all file extensions and types registered on your computer. For each file type, the following information is displayed: Type Name, Description, MIME Type, Perceived Type, Flags, Browser Flags, and more. FileTypesMan also allows you to easily edit the properties and flags of each file type, as well as it allows you to add, edit, and remove actions in a file type. This utility works in all Windows versions including, Windows 10.

Screenshots

How to Change the Icon for a File Type in Windows

How to Change the Icon for a File Type in Windows



%SystemRoot%\system32\imageres.dll,-102 is the Windows-default icon for .txt files.

How to Change the Icon for a File Type in Windows
Windows-default icon for .txt files

After setting the default icon to %SystemRoot%\system32\imageres.dll,14 via the icon picker dialog, here is how it shows up:

How to Change the Icon for a File Type in Windows
Customized .txt files icon

Change the icon for unknown and extensionless files

File types that are not registered with the system and files that have no extension are assigned a generic icon from shell32.dll,0 by default. The unknown or generic icon for unregistered file types and extensionless files can be customized as per your choice so that you don’t have to see the boring icon anymore.

Windows stores the icon setting for unknown file types and extensionless files in this registry key:

HKEY_CLASSES_ROOT\Unknown\DefaultIcon

The (default) or the unnamed value points to the following icon resource by default:

%SystemRoot%\System32\shell32.dll,0

Using the Registry Editor (Regedit.exe), you can change the (default) value so that it points to a .ico file that you already have or an icon resource inside a .dll or .exe file by mentioning the file name and resource identifier.

Using the Icon picker (a.k.a. the Change Icon dialog), you can use a relevant icon in shell32.dll, 224 that can be assigned for unregistered and extensionless files. You just need to replace the existing Value data (%SystemRoot%\System32\shell32.dll,0) with %SystemRoot%\System32\shell32.dll,224 using the Registry Editor or using the REG files below.

Logoff and login back to your account.

Here is how it looked before:

change icon for unknown file type

We’ve changed that to:

change icon for unknown file type

Tip: In case the icons don’t automatically refresh even after a logoff-logon cycle, you can force a shell icons refresh using the ie4uinit.exe method or using Default Programs.

Hope the above guide helped you change file type icons on your Windows 10 computer easily!

About the author

Ramesh Srinivasan founded Winhelponline.com back in 2005. He is passionate about Microsoft technologies and he has been a Microsoft Most Valuable Professional (MVP) for 10 consecutive years from 2003 to 2012.

25 thoughts on “How to Change the Icon for a File Type in Windows?”

  1. It’s a great tool but shouldn’t have been wizard-based. A single window with all settings like XP’s File Types Tab would be so awesome.

  2. wow ! I have spent what seems to be countless hours trying to change the icons on boring
    mp3, wma and mp4 songs without having to alter my registry.

    This program is powerful and I can’t thank you enough for sharing it with me !!

    Smiling again because of you 🙂
    Elizabeth

  3. Thank you for the useful information. But the “Default” key is no longer called so in Windows 7, but rather called “Standard”. Actually this confused me a bit till I noticed, since I’m not too familiar with messing with registry ^^.

  4. Is there any way to change the icon of just one file? I made a program and compiled it to an .exe and I don’t want it being the VB6 icon(i know, it’s old). But I have windows 7. I could do it on my old windows XP computer, but not on my new one

  5. VB6? You need an upgrade, my friend.

    From VB6 IDE menu “Project\ Properties”, select “Make”-tab”. There’s “Icon”-drop down, select the form which has the icon you want for your EXE-file.

  6. Thanks for this pointing me to the very cool tool. One issue I am experiencing – it won’t change my .msg icons (I have dragged Outlook mesages into files on “My Documents” although it says it has. Any suggestions?

  7. This tool resolved a problem which annoyed me since the beginning of this year. I have a file type .!!! for important text files (and of course .txt and .ini) which are all opened by the same program (EditPadPro). However since changing to Windows 7 both .!!! and .ini had the same file icon – and i did not find a method to change that.
    Thanks for this tool.

  8. Thanks, this was a big help. But you should add an explanaition on how to “manually add the DefaultIcon key.” I decided to right click on the abcfile and found I could choose Key as an option.

    Also, my Windows 7 doesn’t have a Change Icon option on the Customize tab. There is a section for “Folder pictures” with Choose File that lets you browse for a file.

    I used this as a workaround by copying the image I wanted into the Pictures folder and using that path in step 7.

  9. .jpg and .png have different icons, but both open with Windows Photo Viewer.
    This is what I would like: .m3u and .flac to have different icons, but both open in winamp.

  10. Everything works, got mp3, m3u, and flac with different icons, all opening in Winamp, thanks!
    I didn’t feel like restarting, so as in the link I pressed start…default programs…set your default programs… and made firefox my default, which it already is.

  11. This blog entry was immensely helpful to me. Can’t thank you enough. I was having a really hard time getting the correct icons for pdf files.

  12. There is a much easier and safer solution (at least for Win 7). See if your issue is the same as mine: I had .mp4 files set to open with VLC. They were named as VLC files, VLC had them selected as a default file type in the ‘Set Your Default Programs’ dialogue, and VLC was also the default in the file ‘Properties’ tab in Explorer. BUT, the icon for mp4 files was not the VLC icon, it was the Windows Media icon.

    This solved it:

    In the start menu, type ‘default programs’ and then go to that menu. Pick the 2nd option, ‘Associate a file type or protocol with a program’. When the list populates, choose the file type and click the ‘change association’ button. Choose the desired program, EVEN IF IT IS THE SAME PROGRAM YOU ARE CURRENTLY USING. When you hit ‘ok’, you will see that the file type icon now matches the program icon.

    Let me know if this works for you!

  13. go to

    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.dwg

    Right clock on userchoice, select delete

    restart computer…..

  14. Ridiculously convoluted way to simply change a bloody icon.

    “One step forward, two steps back” seems to be the motto for Microsoft

  15. Terrific Tool. Microsoft clearly couldn’t care less about their customers. I find it beyond incredible that the built-in ability to do this was removed.

  16. The icon change is a multi-level problem. There are several “levels” at which one could/should change the icon.
    The following might help in cases where the above mentioned solution did not succeed.
    Example: Installed software (e.g. Inkscape 64-bit build) does not contain an icon in its exe.
    Action: *.svg is assigned via: right click -> open with -> … select path to inkscape.exe
    Result: all *.svg files show the icon inkscape.exe does = none
    Solution: execute regedit, search for: inkscape.exe (name of *.exe you did assign to file type) continue until you locate: HKEY_USERS\…\…\Software\Classes\Applications\inkscape.exe\… (…\Applications\[your software].exe\…).
    Under inkscape.exe add DefaultIcon key. Now next to other folders (e.g. …\shell) inkscape.exe\DefaultIcon\ should be available. Now edit the default key to the path to the icon file you want to assign. In this case (including the “) “C:\Program Files\Inkscape-0.48\inkscape.ico” did result in the selected icon being displayed for all *.svg files (analogue the files you associated with your software).
    Note: Icon cache can be either refreshed by 1) using “Set default” for a random file with random program you use to edit it (e.g. right click *.txt-> open with the default txt program you open it with anyway)) 2) changing screen resolution from 32-bit to 16-bit and back again 3) Restarting the computer
    Below find a list of seemingly random, working exemplary icons paths as encountered from the registry:
    “C:\…\Program.exe”,0 or C:\…\Program.exe or C:\Windows\System32\imageres.dll,-109 (number as explained above) or “C:\..\program.ico” or “C:\…\Program.exe,0 (no second “) or X:\…\Program.ico or “C:\PROGRA~1\…\PROGRAM.DLL”,-114

  17. Completely unhelpful. Most of us can figure out how to change the file icons like this. What is hard is trying to change it so that the file types themselves are different icons even though they open in the same program. I know this is possible, as it does this for a lot of stuff in Windows 7, but sometimes if files are associated a certain way (which I’m not sure of how) then all files, regardless of being different extensions, are stuck with the same damn icon, which is infuriating. Super infuriating. I don’t know wtf Micro$oft was thinking, but once again they changed & took something away from power users, which affected nobody & was never a problem for anyone, so didn’t need to be removed.

Leave a Comment