private static void separators_() {

	System.out.println("*** Separator conversion ***");

	String filename = "X:\\JCG\\articles\\org.apache.commons.io.FilenameUtils Example\\notes.txt";
	System.out.println("File name: " + filename);
	filename = FilenameUtils.separatorsToUnix(filename);
	System.out.println("File name after separatorsToUnix(): " + filename);

	filename = "/JCG/articles/org.apache.commons.io.FilenameUtils Example/notes.txt";
	System.out.println("File name: " + filename);
	filename = FilenameUtils.separatorsToSystem(filename);
	System.out.println("File name after separatorsToSystem(): " + filename);
}

        

public void testSeparatorsToUnix() {
        assertEquals(null, FilenameUtils.separatorsToUnix(null));
        assertEquals("/a/b/c", FilenameUtils.separatorsToUnix("/a/b/c"));
        assertEquals("/a/b/c.txt", FilenameUtils.separatorsToUnix("/a/b/c.txt"));
        assertEquals("/a/b/c", FilenameUtils.separatorsToUnix("/a/b\\c"));
        assertEquals("/a/b/c", FilenameUtils.separatorsToUnix("\\a\\b\\c"));
        assertEquals("D:/a/b/c", FilenameUtils.separatorsToUnix("D:\\a\\b\\c"));
}

        

protected boolean accept( String path ) {     
  for (Pattern pattern : pathPatterns) {
    //separatorsToUnix is used to convert \ to /
    if ( pattern.matches( FilenameUtils.separatorsToUnix( path ) )) {
      return true;
    }
  }
  return false;
}

        

public static void main(String[] args) {
    String unixPath = "/test/linux/path";
    String windowsPath = "\\test\\windows\\path";
    System.out.println(FilenameUtils.separatorsToWindows(unixPath));
    System.out.println(FilenameUtils.separatorsToUnix(windowsPath));
    System.out.println(FilenameUtils.separatorsToSystem(windowsPath));
}

        

public static String getRelativePath(String targetPath, String basePath, String pathSeparator) {
        File baseFile = new File(basePath);
        if (baseFile.isFile() || !baseFile.exists() && !basePath.endsWith("/") && !basePath.endsWith("\\"))
            basePath = baseFile.getParent();

        String target = separatorsToUnix(normalizeNoEndSeparator(targetPath));
        String base = separatorsToUnix(normalizeNoEndSeparator(basePath));

        String commonPrefix = getCommonPrefix(target, base);
        if (isBlank(commonPrefix))
            return targetPath.replaceAll("/", pathSeparator);

        target = target.replaceFirst(commonPrefix, "");
        base = base.replaceFirst(commonPrefix, "");

        List<String> result = new ArrayList<>();
        if (isNotEmpty(base))
            result.addAll(nCopies(base.split("/").length, ".."));
        result.addAll(asList(target.replaceFirst("^/", "").split("/")));

        return join(result, pathSeparator);
}

        

public static File[] listFiles(String antInclude) {
	Objects.requireNonNull(antInclude, "antInclude must not be null");

	String includeNormalized = FilenameUtils.separatorsToUnix(antInclude);
	PathInfo pathInfo = separatePath(includeNormalized);

	return listFiles(new File(pathInfo.getPathToBaseDir()), pathInfo.getPattern());
}

        

private JarEntry createJarEntry(Path source) throws IOException {
    String entryName = FilenameUtils.separatorsToUnix(mtaAssemblyDir.relativize(source).toString());
    if (Files.isDirectory(source) && !entryName.endsWith(Constants.UNIX_PATH_SEPARATOR)) {
        entryName += Constants.UNIX_PATH_SEPARATOR;
    }

    JarEntry entry = new JarEntry(entryName);
    entry.setTime(Files.getLastModifiedTime(source).toMillis());
    return entry;
}


        

public void SetPepXMLPath() {
    iProphPepXMLs = new ArrayList<String>();
    String PepXMLPath1 = FilenameUtils.separatorsToUnix(FilenameUtils.getFullPath(Filename) + "interact-" + GetQ1Name() + ".pep.xml");
    String PepXMLPath2 = FilenameUtils.separatorsToUnix(FilenameUtils.getFullPath(Filename) + "interact-" + GetQ2Name() + ".pep.xml");
    String PepXMLPath3 = FilenameUtils.separatorsToUnix(FilenameUtils.getFullPath(Filename) + "interact-" + GetQ3Name() + ".pep.xml");
    iProphPepXMLs.add(PepXMLPath1);
    iProphPepXMLs.add(PepXMLPath2);
    iProphPepXMLs.add(PepXMLPath3);
}

        

public void SetResultFilePath(String mzXMLfile) {
	SpectrumPath = FilenameUtils.separatorsToUnix(FilenameUtils.getFullPath(mzXMLfile) + FilenameUtils.getName(mzXMLfile));
	PepXMLPath = FilenameUtils.separatorsToUnix(FilenameUtils.getFullPath(mzXMLfile) + FilenameUtils.getBaseName(mzXMLfile) + ".tandem.pep.xml");
	InteractPepXMLPath = FilenameUtils.separatorsToUnix(FilenameUtils.getFullPath(mzXMLfile) + "interact-" + FilenameUtils.getBaseName(mzXMLfile) + ".tandem.pep.xml");
	ProtXMLPath = InteractPepXMLPath.replace(".pep.xml", ".prot.xml");
	parameterPath = FilenameUtils.separatorsToUnix(FilenameUtils.getFullPath(mzXMLfile) + FilenameUtils.getBaseName(mzXMLfile) + ".tandem.param");
	RawSearchResult = FilenameUtils.separatorsToUnix(FilenameUtils.getFullPath(mzXMLfile) + FilenameUtils.getBaseName(mzXMLfile) + ".tandem");
}

        

private String getPathName(Path parentFolder, Path fileToAppend) {
    Path relativePath = parentFolder.relativize(fileToAppend);
    return FilenameUtils.separatorsToUnix(relativePath.toString());
}        
main