code: @Nullable
    public static String getCanonicalPath (@Nullable final Path aFile) throws IOException
    {
      // Note: getCanonicalPath may be a bottleneck on Unix based file systems!
      return aFile == null ? null : aFile.toRealPath ().toString ();
    }
docs: Get the canonical path of the passed file, if the file is not
  <code>null</code>.
  
  @param aFile
  The file to get the canonical path from. May be <code>null</code>.
  @return <code>null</code> if the passed file is <code>null</code>.
  @throws IOException
  If an I/O error occurs, which is possible because the construction
  of the canonical pathname may require filesystem queries