okay man willn't the operating system /computer know where the file is????
Budapest is right.
Files are always identified by name - if a program needs a file it requests it by that name. But a heirarchical (tree style) filing system like modern computers use can have files with the same name in more than one location. So to be sure of getting the exact file the program needs, most programmers will write the program to look only where that file is supposed to be. Otherwise it might find a file with the same name somewhere else on the system, and it could be the wrong file and crash the program. If you move the file, the program looks only in the expected location, and fails to find it.
If a program requests a file only
by its name without specifying a location, the operating system will look in a limited number of likely locations (known as the search path). But it won't go searching the whole computer. Programs mostly look after their own files, and only inform the operating system of what is necessary to allow the program to function correctly. An operating system that knew the purpose of every individual file on a system, which programs used them in what way, and tracked any changes made to that system so it could always find their files for them, would be incredibly cumbersome.