For just about all versions of Workbench there are basically five types of .info files (tool icons, project icons, drawer icons trash and disk icons). You want to use the right type for the file your adding an icon to. A drawer or disk icon won't work right for a project file, and a project icon won't work right for a program. IconEdit is the original Amiga program for creating and editing icons. The Workbench information menu item is the other way users access an icon's details.
If you want an icon for a program you should copy/create a tool icon to the same directory as the file and give it the filename with a .info extension. (filename needs filename.info for its icon file) Edit the icon stack size and tooltypes to match the needs of the program with workbench's menu item information... There are odd programs which don't understand how to work right when run from workbench because of the differences programs see internally when running from workbench and not a shell command line. An Icon's tooltypes are analogous to shell command line options for the program called.
If the file is a data file, then you want to copy/create a project icon to the same directory as the file and name it the same as the filename with .info as the extension. Edit it so the "default tool" is set to whatever program you want to open the file with the workbench menu item information...
If the "file" is really a directory you want to copy/create a drawer icon.
If the "file" is really a disk volume root directory you want to copy/create a disk icon.
There's one other type of icon (AppIcon) that programs post Workbench 2.0 can create to exist on the workbench only while the program is running so when a user drops other icons onto it, Workbench will notify the program to use those files.
Don't forget about the bugs in IconEdit!! Google it.