code: @Pure
  	public static File normalizeWindowsNativeFilename(String filename) {
  		final String fn = extractLocalPath(filename);
  		if (fn != null && fn.length() > 0) {
  			final Pattern pattern = Pattern.compile(WINDOW_NATIVE_FILENAME_PATTERN);
  			final Matcher matcher = pattern.matcher(fn);
  			if (matcher.find()) {
  				return new File(fn.replace(WINDOWS_SEPARATOR_CHAR, File.separatorChar));
  			}
  		}
  		return null;
  	}
docs: Normalize the given string contains a Windows&reg; native long filename
  and replies a Java-standard version.
  
  <p>Long filenames (LFN), spelled "long file names" by Microsoft Corporation,
  are Microsoft's way of implementing filenames longer than the 8.3,
  or short-filename, naming scheme used in Microsoft DOS in their modern
  FAT and NTFS filesystems. Because these filenames can be longer than the
  8.3 filename, they can be more descriptive. Another advantage of this
  scheme is that it allows for use of *nix files ending in (e.g. .jpeg,
  .tiff, .html, and .xhtml) rather than specialized shortened names
  (e.g. .jpg, .tif, .htm, .xht).
  
  <p>The long filename system allows a maximum length of 255 UTF-16 characters,
  including spaces and non-alphanumeric characters; excluding the following
  characters, which have special meaning within the command interpreter or
  the operating system kernel: <code>\</code> <code>/</code> <code>:</code>
  <code>*</code> <code>?</code> <code>"</code> <code>&lt;</code>
  <code>&gt;</code> <code>|</code>
  
  @param filename the filename to test.
  @return the normalized path or <code>null</code> if not a windows native path.
  @see #isWindowsNativeFilename(String)