public static ParsePathType pathType(Path f) {int pathLength = 0;while (f != null && f.getFileName() != null && ++pathLength < MAX_PATH_LENGTH) {ParsePathType ppt = pathName2Type.get(f.getFileName().toString().toUpperCase(Locale.ROOT));if (ppt!=null) {return ppt;}f = f.getParent();}return DEFAULT_PATH_TYPE;}

public static ParsePathType PathType(FileInfo f){int pathLength = 0;ParsePathType? ppt;if (pathName2Type.TryGetValue(f.Name.ToUpperInvariant(), out ppt) && ppt != null){return ppt.Value;}DirectoryInfo parentDir = f.Directory;while (parentDir != null && ++pathLength < MAX_PATH_LENGTH){if (pathName2Type.TryGetValue(parentDir.Name.ToUpperInvariant(), out ppt) && ppt != null){return ppt.Value;}parentDir = parentDir.Parent;}return DEFAULT_PATH_TYPE;}
