/** * Checks and normalizes the given path. * * @param path The path to clean up * @return a normalized version of the path, with single separators between path components and * dot components resolved * @throws InvalidPathException if the path is invalid */ public static String cleanPath(String path) throws InvalidPathException { validatePath(path); return FilenameUtils.separatorsToUnix(FilenameUtils.normalizeNoEndSeparator(path)); }
@Test public void testNormalizeNoEndSeparatorUnixWin() throws Exception { // Normalize (Unix Separator) assertEquals("/a/c", FilenameUtils.normalizeNoEndSeparator("/a/b/../c/", true)); assertEquals("/a/c", FilenameUtils.normalizeNoEndSeparator("\\a\\b\\..\\c\\", true)); // Normalize (Windows Separator) assertEquals("\\a\\c", FilenameUtils.normalizeNoEndSeparator("/a/b/../c/", false)); assertEquals("\\a\\c", FilenameUtils.normalizeNoEndSeparator("\\a\\b\\..\\c\\", false)); }
@Test public void testNormalizeNoEndSeparator() throws Exception { assertEquals(null, FilenameUtils.normalizeNoEndSeparator(null)); assertEquals(null, FilenameUtils.normalizeNoEndSeparator(":")); assertEquals(null, FilenameUtils.normalizeNoEndSeparator("1:\\a\\b\\c.txt")); assertEquals(null, FilenameUtils.normalizeNoEndSeparator("1:")); assertEquals(null, FilenameUtils.normalizeNoEndSeparator("1:a")); assertEquals(null, FilenameUtils.normalizeNoEndSeparator("\\\\\\a\\b\\c.txt")); assertEquals(null, FilenameUtils.normalizeNoEndSeparator("\\\\a")); assertEquals("a" + SEP + "b" + SEP + "c.txt", FilenameUtils.normalizeNoEndSeparator("a\\b/c.txt")); assertEquals("" + SEP + "a" + SEP + "b" + SEP + "c.txt", FilenameUtils.normalizeNoEndSeparator("\\a\\b/c.txt")); assertEquals("C:" + SEP + "a" + SEP + "b" + SEP + "c.txt", FilenameUtils.normalizeNoEndSeparator("C:\\a\\b/c.txt")); assertEquals("" + SEP + "" + SEP + "server" + SEP + "a" + SEP + "b" + SEP + "c.txt", FilenameUtils.normalizeNoEndSeparator("\\\\server\\a\\b/c.txt")); assertEquals("~" + SEP + "a" + SEP + "b" + SEP + "c.txt", FilenameUtils.normalizeNoEndSeparator("~\\a\\b/c.txt")); assertEquals("~user" + SEP + "a" + SEP + "b" + SEP + "c.txt", FilenameUtils.normalizeNoEndSeparator("~user\\a\\b/c.txt")); assertEquals("a" + SEP + "c", FilenameUtils.normalizeNoEndSeparator("a/b/../c")); assertEquals("c", FilenameUtils.normalizeNoEndSeparator("a/b/../../c")); assertEquals("c", FilenameUtils.normalizeNoEndSeparator("a/b/../../c/")); assertEquals(null, FilenameUtils.normalizeNoEndSeparator("a/b/../../../c")); assertEquals("a", FilenameUtils.normalizeNoEndSeparator("a/b/..")); assertEquals("a", FilenameUtils.normalizeNoEndSeparator("a/b/../")); assertEquals("", FilenameUtils.normalizeNoEndSeparator("a/b/../..")); assertEquals("", FilenameUtils.normalizeNoEndSeparator("a/b/../../")); assertEquals(null, FilenameUtils.normalizeNoEndSeparator("a/b/../../..")); assertEquals("a" + SEP + "d", FilenameUtils.normalizeNoEndSeparator("a/b/../c/../d")); assertEquals("a" + SEP + "d", FilenameUtils.normalizeNoEndSeparator("a/b/../c/../d/")); assertEquals("a" + SEP + "b" + SEP + "d", FilenameUtils.normalizeNoEndSeparator("a/b//d")); assertEquals("a" + SEP + "b", FilenameUtils.normalizeNoEndSeparator("a/b/././."));
/** * Join two path without appending '/'. * * @param path1 path1 * @param path2 path2 * @return joined path */ public static String join(String path1, String path2) { path1 = trimPathSeparatorBothSides(path1); path2 = trimPathSeparatorBothSides(path2); return FilenameUtils.normalizeNoEndSeparator(path1 + "/" + path2, true); }
final String name = FilenameUtils.getName(FilenameUtils.normalizeNoEndSeparator(url.getPath()));
String normalizedTargetPath = FilenameUtils.normalizeNoEndSeparator(targetPath); String normalizedBasePath = FilenameUtils.normalizeNoEndSeparator(basePath);
@NotNull final String pathSeparator) { String normalizedTargetPath = FilenameUtils.normalizeNoEndSeparator(targetPath); String normalizedBasePath = FilenameUtils.normalizeNoEndSeparator(basePath);
/** * 规范化路径,合并其中的多个分隔符为一个,并转化为本地系统路径格式,若是路径,则不带最后的路径分隔符 * * @param filename * 文件完整路径 * @return */ public static String normalizeNoEndSeparator(String filename) { return FilenameUtils.normalizeNoEndSeparator(filename); }
public String normalizeFilename(String filename) { String result = Normalizer.normalize(filename, Normalizer.Form.NFD); result = FilenameUtils.normalizeNoEndSeparator(result, true) .replaceAll("[^\\p{ASCII}]", ""); return result; }
private String normalize(Path path) { Path relativeDir = enclosure.relativize(path); return FilenameUtils.normalizeNoEndSeparator(relativeDir.toString(), true); }
@Override public boolean apply(File input) { return input.isFile() && !normalizeNoEndSeparator(input.getParent()) .equals(cacheRoot.getAbsolutePath()); } }).iterator();
@Override public boolean apply(File input) { return input.isFile() && !normalizeNoEndSeparator(input.getParent()) .equals(cacheRoot.getAbsolutePath()); } }).iterator();
@Override public boolean apply(File input) { return input.isFile() && !normalizeNoEndSeparator(input.getParent()) .equals(cacheRoot.getAbsolutePath()); } }).iterator();
/** * @param basePath */ public FileSystemFileStorage(String basePath, boolean compress) { super(); this.basePath = FilenameUtils.normalizeNoEndSeparator(basePath); this.compress = compress; File dir = new File(basePath); if (!dir.exists()) { LOG.info("Creating storage dir " + dir.getAbsolutePath()); } }
public static String getClassName(File dir,File file){ String dirPath = FilenameUtils.normalizeNoEndSeparator(dir.getAbsolutePath()); String fname =FilenameUtils.normalizeNoEndSeparator(file.getAbsolutePath()); String ext = FilenameUtils.getExtension(fname); String clsName = fname.substring(dirPath.length() + 1, fname.length() - ext.length()-1).replace(File.separator, "."); return clsName; }
private static final File getAbsoluteFile(String uploadDir, String filename) throws IOException { uploadDir = FilenameUtils.normalizeNoEndSeparator(uploadDir); System.out.println("getAbsoluteFile path:"+uploadDir + "/" + filename); File desc = new File(uploadDir + "/" + filename); if (!desc.getParentFile().exists()) { desc.getParentFile().mkdirs(); } if (!desc.exists()) { desc.createNewFile(); } return desc; }
/** * Instantiates a new class walker. * * @param dir the dir */ public ClassWalker(File dir) { super(getFileFilter(), -1); this.startDir = dir; this.startDirnameLength = FilenameUtils .normalizeNoEndSeparator(dir.getAbsolutePath()).length(); }
public FileVertex(@Nonnull final File file, @Nonnull final FileVertexType type) { this.type = type; this.text = file.getName(); this.tooltip = "<html><b>" + type.toString() + "</b><br>" + StringEscapeUtils.unescapeHtml(FilenameUtils.normalizeNoEndSeparator(file.getAbsolutePath())) + "</html>"; //NOI18N this.file = file; }
private static String constructResourcePath(String packagePath, String resourceName) { String resourcePath = String.format("/%s/%s", packagePath, resourceName); String resourcePathUnixSeparators = FilenameUtils.separatorsToUnix(resourcePath); String resourcePathNoLeadingSeparators = removeLeadingUnixSeparators(resourcePathUnixSeparators); String normalizedResourcePath = FilenameUtils.normalizeNoEndSeparator(resourcePathNoLeadingSeparators, true); return normalizedResourcePath; }
/** * Checks and normalizes the given path. * * @param path The path to clean up * @return a normalized version of the path, with single separators between path components and * dot components resolved * @throws InvalidPathException if the path is invalid */ public static String cleanPath(String path) throws InvalidPathException { validatePath(path); return FilenameUtils.separatorsToUnix(FilenameUtils.normalizeNoEndSeparator(path)); }