code: public static File wrap(final File pPath) {
          if (pPath == null) {
              return null;
          }
  
          if (IS_WINDOWS) {
              // Don't wrap if allready wrapped
              if (pPath instanceof Win32File || pPath instanceof Win32Lnk) {
                  return pPath;
              }
  
              if (pPath.exists() && pPath.getName().endsWith(".lnk")) {
                  // If Win32 .lnk, let's wrap
                  try {
                      return new Win32Lnk(pPath);
                  }
                  catch (IOException e) {
                      // TODO: FixMe!
                      e.printStackTrace();
                  }
              }
  
              // Wwrap even if not a .lnk, as the listFiles() methods etc,
              // could potentially return .lnk's, that we want to wrap later...
              return new Win32File(pPath);
          }
  
          return pPath;
      }
docs: Wraps a {@code File} object pointing to a Windows symbolic link
  ({@code .lnk} file) in a {@code Win32Lnk}.
  If the operating system is not Windows, the
  {@code pPath} parameter is returned unwrapped.
  
  @param pPath any path, possibly pointing to a Windows symbolic link file.
  May be {@code null}, in which case {@code null} is returned.
  
  @return a new {@code Win32Lnk} object if the current os is Windows, and
  the file is a Windows symbolic link ({@code .lnk} file), otherwise
  {@code pPath}