...removing redundant names such as "." and ".." from the pathname, resolving symbolic links (on UNIX platforms), and converting drive letters to a standard case (on Microsoft Windows platforms)...
http://www.coderanch.com/t/277962/Streams/java/getCanonicalPath-vs-getAbsolutePath