Java Code Examples for java.nio.file.Path#getNameCount()
The following examples show how to use
java.nio.file.Path#getNameCount() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: PathOps.java From yajsync with GNU General Public License v3.0 | 6 votes |
public static Path subtractPathOrNull(Path parent, Path sub) { if (!parent.endsWith(sub)) { throw new IllegalArgumentException(String.format( "%s is not a parent path of %s", parent, sub)); } if (parent.getNameCount() == sub.getNameCount()) { return parent.getRoot(); // NOTE: return null if parent has no root } Path res = parent.subpath(0, parent.getNameCount() - sub.getNameCount()); if (parent.isAbsolute()) { return parent.getRoot().resolve(res); } else { return res; } }
Example 2
Source File: DefaultPathDetector.java From sarl with Apache License 2.0 | 6 votes |
private static File normalize(File filename) { final Path path1 = toFile(SARLConfig.FOLDER_SOURCE_SARL).toPath(); final Path path2 = toFile(SARLConfig.FOLDER_SOURCE_JAVA).toPath(); final Path path3 = toFile(SARLConfig.FOLDER_TEST_SOURCE_SARL).toPath(); final Path path = filename.toPath(); Path toRemove = null; if (path.endsWith(path1)) { toRemove = path1; } else if (path.endsWith(path2)) { toRemove = path2; } else if (path.endsWith(path3)) { toRemove = path3; } if (toRemove != null) { final int nb = toRemove.getNameCount(); File res = filename; for (int i = 0; i < nb; ++i) { res = res.getParentFile(); } return res; } return filename; }
Example 3
Source File: MCRDirectoryStream.java From mycore with GNU General Public License v3.0 | 6 votes |
private static MCRFile getMCRFile(SecureDirectoryStream ds, Path relativePath) throws IOException { MCRStoredNode storedNode = ds.resolve(relativePath); if (storedNode != null) { throw new FileAlreadyExistsException(ds.dirPath.resolve(relativePath).toString()); } //does not exist, have to create MCRStoredNode parent = ds.dir; if (relativePath.getNameCount() > 1) { parent = (MCRStoredNode) parent.getNodeByPath(relativePath.getParent().toString()); if (parent == null) { throw new NoSuchFileException(ds.dirPath.resolve(relativePath.getParent()).toString()); } if (!(parent instanceof MCRDirectory)) { throw new NotDirectoryException(ds.dirPath.resolve(relativePath.getParent()).toString()); } } return ((MCRDirectory) parent).createFile(relativePath.getFileName().toString()); }
Example 4
Source File: FolderComposite.java From PeerWasp with MIT License | 6 votes |
/** * Appends a new component to the FolderComposite. Inexistent folders are added on the * fly. Existing items are replaced. Triggers updates of content and name hashes. */ public synchronized void putComponent(Path remainingPath, FileComponent component) { remainingPath = stripOffPrefix(remainingPath, getPath()); Path nextLevelPath = remainingPath.getName(0); // if we are at the last recursion, perform the add, else recursively continue if (remainingPath.getNameCount() == 1) { deleteComponent(nextLevelPath); addComponentToChildren(nextLevelPath, component); } else { FileComponent nextLevel = children.get(nextLevelPath); if (nextLevel == null) { // next level does not exist yet, create it Path childPath = constructFullPath(nextLevelPath); nextLevel = new FolderComposite(childPath, updateContentHash); nextLevel.getAction().setFileEventManager(getAction().getFileEventManager()); addComponentToChildren(nextLevelPath, nextLevel); } Path newRemainingPath = remainingPath.subpath(1, remainingPath.getNameCount()); ((FolderComposite) nextLevel).putComponent(newRemainingPath, component); } }
Example 5
Source File: PathTester.java From jimfs with Apache License 2.0 | 5 votes |
private void testSubpaths(Path path) { if (path.getRoot() == null) { assertEquals(path, path.subpath(0, path.getNameCount())); } if (path.getNameCount() > 1) { String stringWithoutRoot = root == null ? string : string.substring(root.length()); // test start + 1 to end and start to end - 1 subpaths... this recursively tests all subpaths // actually tests most possible subpaths multiple times but... eh Path startSubpath = path.subpath(1, path.getNameCount()); List<String> startNames = ImmutableList.copyOf(Splitter.on('/').split(stringWithoutRoot)) .subList(1, path.getNameCount()); new PathTester(pathService, Joiner.on('/').join(startNames)) .names(startNames) .test(startSubpath); Path endSubpath = path.subpath(0, path.getNameCount() - 1); List<String> endNames = ImmutableList.copyOf(Splitter.on('/').split(stringWithoutRoot)) .subList(0, path.getNameCount() - 1); new PathTester(pathService, Joiner.on('/').join(endNames)).names(endNames).test(endSubpath); } }
Example 6
Source File: MemoryBasedJavaFileManager.java From spring-init with Apache License 2.0 | 5 votes |
@Override public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException { if (file.getNameCount() > 2 && file.toString().endsWith(".class")) { // /modules/jdk.rmic/sun/tools/tree/CaseStatement.class String moduleName = file.getName(1).toString(); // jdk.rmic Path moduleRootPath = file.subpath(0, 2); // /modules/jdk.rmic if (!modules.containsKey(moduleName)) { modules.put(moduleName, moduleRootPath); } } return FileVisitResult.CONTINUE; }
Example 7
Source File: LocationOrSinglePathValidator.java From goclipse with Eclipse Public License 1.0 | 5 votes |
@Override protected Path validateRelativePath(Path path) throws ValidationException { if(path.getNameCount() != 1) { throw createException(Severity.ERROR, ValidationMessages.Path_NotAbsoluteNorSingle(path)); } return path; }
Example 8
Source File: MorePaths.java From buck with Apache License 2.0 | 5 votes |
public static int commonSuffixLength(Path a, Path b) { int count = 0; while (count < a.getNameCount() && count < b.getNameCount()) { if (!a.getName(a.getNameCount() - count - 1) .equals(b.getName(b.getNameCount() - count - 1))) { break; } count++; } return count; }
Example 9
Source File: IjSourceRootSimplifier.java From buck with Apache License 2.0 | 5 votes |
private static boolean canMergeWithKeepingPackage( Path currentPath, Path parentPackage, IjFolder child, PackagePathCache packagePathCache) { Optional<Path> childPackageOptional = packagePathCache.lookup(child); if (!childPackageOptional.isPresent()) { return false; } Path childPackage = childPackageOptional.get(); int pathDifference = child.getPath().getNameCount() - currentPath.getNameCount(); Preconditions.checkState(pathDifference == 1); if (childPackage.getNameCount() == 0) { return false; } return MorePaths.getParentOrEmpty(childPackage).equals(parentPackage); }
Example 10
Source File: FileSystemRepository.java From localization_nifi with Apache License 2.0 | 5 votes |
private void removeIncompleteContent(final String containerName, final Path containerPath, final Path fileToRemove) { if (Files.isDirectory(fileToRemove)) { final Path lastPathName = fileToRemove.subpath(1, fileToRemove.getNameCount()); final String fileName = lastPathName.toFile().getName(); if (fileName.equals(ARCHIVE_DIR_NAME)) { return; } final File[] children = fileToRemove.toFile().listFiles(); if (children != null) { for (final File child : children) { removeIncompleteContent(containerName, containerPath, child.toPath()); } } return; } final Path relativePath = containerPath.relativize(fileToRemove); final Path sectionPath = relativePath.subpath(0, 1); if (relativePath.getNameCount() < 2) { return; } final Path idPath = relativePath.subpath(1, relativePath.getNameCount()); final String id = idPath.toFile().getName(); final String sectionName = sectionPath.toFile().getName(); final ResourceClaim resourceClaim = resourceClaimManager.newResourceClaim(containerName, sectionName, id, false, false); if (resourceClaimManager.getClaimantCount(resourceClaim) == 0) { removeIncompleteContent(fileToRemove); } }
Example 11
Source File: PathResourceManager.java From quarkus-http with Apache License 2.0 | 5 votes |
/** * Returns true is some element of path inside base path is a symlink. */ private SymlinkResult getSymlinkBase(final String base, final Path file) throws IOException { int nameCount = file.getNameCount(); Path root = Paths.get(base); int rootCount = root.getNameCount(); Path f = file; for (int i = nameCount - 1; i>=0; i--) { if (Files.isSymbolicLink(f)) { return new SymlinkResult(i+1 > rootCount, f); } f = f.getParent(); } return null; }
Example 12
Source File: FileSystemRepository.java From nifi with Apache License 2.0 | 5 votes |
private void removeIncompleteContent(final String containerName, final Path containerPath, final Path fileToRemove) { if (Files.isDirectory(fileToRemove)) { final Path lastPathName = fileToRemove.subpath(1, fileToRemove.getNameCount()); final String fileName = lastPathName.toFile().getName(); if (fileName.equals(ARCHIVE_DIR_NAME)) { return; } final File[] children = fileToRemove.toFile().listFiles(); if (children != null) { for (final File child : children) { removeIncompleteContent(containerName, containerPath, child.toPath()); } } return; } final Path relativePath = containerPath.relativize(fileToRemove); final Path sectionPath = relativePath.subpath(0, 1); if (relativePath.getNameCount() < 2) { return; } final Path idPath = relativePath.subpath(1, relativePath.getNameCount()); final String id = idPath.toFile().getName(); final String sectionName = sectionPath.toFile().getName(); final ResourceClaim resourceClaim = resourceClaimManager.newResourceClaim(containerName, sectionName, id, false, false); if (resourceClaimManager.getClaimantCount(resourceClaim) == 0) { removeIncompleteContent(fileToRemove); } }
Example 13
Source File: MerkleTreeNodeCache.java From buck with Apache License 2.0 | 5 votes |
private TreeNodeBuilder getMutableParentDirectory(Path pathFragment) { int segments = pathFragment.getNameCount(); if (segments == getPathSegments() + 1) { return this; } return getMutableDirectory(pathFragment).getMutableParentDirectory(pathFragment); }
Example 14
Source File: ZipFSTester.java From openjdk-jdk9 with GNU General Public License v2.0 | 4 votes |
private static void rmdirs(Path path) throws IOException { while (path != null && path.getNameCount() != 0) { Files.delete(path); path = path.getParent(); } }
Example 15
Source File: ParallelizedDownloadManager.java From DataHubSystem with GNU Affero General Public License v3.0 | 4 votes |
/** * In-thread code. * @return path to the downloaded data. */ @Override public DownloadResult call() throws Exception { Path out_file_path; if (tempDir != null) { out_file_path = Files.createTempFile(tempDir, null, TMP_FILE_SUFFIX); } else { out_file_path = Files.createTempFile(null, TMP_FILE_SUFFIX); } try (FileChannel output = FileChannel.open(out_file_path, StandardOpenOption.WRITE)) { // Computes the data's md5 sum on the fly MessageDigest md = MessageDigest.getInstance("MD5"); DigestIWC decorator = new DigestIWC(md, output); long delta = System.currentTimeMillis(); HttpResponse response = http_client.interruptibleGet(this.urlToDownload, decorator); LOGGER.debug(String.format("Downloaded '%s' in %d ms", this.urlToDownload, System.currentTimeMillis() - delta)); // If the response's status code is not 200, something wrong happened if (response.getStatusLine().getStatusCode() != HttpStatus.SC_OK) { Formatter ff = new Formatter(); ff.format("Cannot download from %s," + " remote host returned message '%s' (HTTP%d)", this.urlToDownload, response.getStatusLine().getReasonPhrase(), response.getStatusLine().getStatusCode()); throw new IOException(ff.out().toString()); } // Gets the filename from the HTTP header field `Content-Disposition' String contdis = response.getFirstHeader("Content-Disposition").getValue(); if (contdis != null && !contdis.isEmpty()) { Matcher m = pattern.matcher(contdis); if (m.find()) { String filename = m.group(1); if (filename != null && !filename.isEmpty()) { decorator.close(); // Renames the downloaded file Path rpath = Paths.get(filename); if (rpath.isAbsolute() || rpath.getNameCount() != 1) { String msg = String.format("invalid filename '%s' from %s", filename, this.urlToDownload); throw new IllegalStateException(msg); } Path dest = out_file_path.resolveSibling(rpath); Files.move(out_file_path, dest, StandardCopyOption.ATOMIC_MOVE); out_file_path = dest; } } } DownloadResult res = new DownloadResult( out_file_path, response.getEntity().getContentType().getValue(), response.getEntity().getContentLength(), md.digest()); return res; } catch (Exception e) { // cleanup if an error occured if (Files.exists(out_file_path)) { Files.delete(out_file_path); } throw e; } }
Example 16
Source File: MorePaths.java From buck with Apache License 2.0 | 4 votes |
public static Pair<Path, Path> stripCommonSuffix(Path a, Path b) { int count = commonSuffixLength(a, b); return new Pair<>( count == a.getNameCount() ? emptyOf(a) : a.subpath(0, a.getNameCount() - count), count == b.getNameCount() ? emptyOf(b) : b.subpath(0, b.getNameCount() - count)); }
Example 17
Source File: FolderCompositeTest.java From PeerWasp with MIT License | 4 votes |
@Test public void testPutFileInSubfolder() throws IOException { Path fileSub = Paths.get("1", "2", "3", "file.txt"); Path file = rootPath.resolve(fileSub); FileComponent f = createFile(file); rootFolder.putComponent(file, f); // check file FileComponent parent = rootFolder.getComponent(fileSub.getParent()); assertEquals(parent, f.getParent()); assertEquals(f.getPath(), file); // check ancestors -- for each element of the path: FileComponent previous = rootFolder; FileComponent current = null; for (int i = 1; i < fileSub.getNameCount(); ++i) { Path sub = rootPath.resolve(fileSub.subpath(0, i)); // check parent current = rootFolder.getComponent(sub); assertNotNull(current); assertEquals(previous, current.getParent()); assertEquals(sub, current.getPath()); // check children assertTrue(previous.isFolder()); FolderComposite folder = (FolderComposite) previous; assertTrue(folder.getChildren().size() == 1); assertTrue(folder.getChildren().containsKey(sub.getFileName())); assertEquals(folder.getChildren().get(sub.getFileName()), current); // check content hash -- parent includes hash of child String contentHash = computeHashOfString(current.getContentHash()); assertEquals(previous.getContentHash(), contentHash); // check name hash String structureHash = computeHashOfString(current.getPath().getFileName().toString()); assertEquals(((FolderComposite)previous).getStructureHash(), structureHash); previous = current; } }
Example 18
Source File: GlobFilePathUtil.java From datacollector with Apache License 2.0 | 4 votes |
public static Path getWildcardPath(Path path) { int nameCount = path.getNameCount(); int wildcardIdx = 0; for (; wildcardIdx < nameCount && !hasGlobWildcard(path.getName(wildcardIdx).toString()); wildcardIdx++); return getSubPath(path, wildcardIdx, nameCount, false); }
Example 19
Source File: MorePaths.java From buck with Apache License 2.0 | 4 votes |
/** * Returns a child path relative to a base path. This is similar to `Path.relativize`, but * supports base paths that start with "..", even in Java 11. JCL implementations of * `Path.relativize` support base paths like this in Java 8, but not in Java 11. * * @param basePath the path against which childPath will be relativized * @param childPath the path to relativize against {@code basePath} * @return {@code childPath} relativized against {@code basePath} */ public static Path relativizeWithDotDotSupport(Path basePath, Path childPath) { if (basePath instanceof BuckUnixPath) { // Call our more efficient implementation if using Buck's own filesystem provider. return basePath.relativize(childPath); } if (basePath.equals(childPath)) { return basePath.getFileSystem().getPath(""); } if (basePath.isAbsolute() != childPath.isAbsolute()) { throw new IllegalArgumentException("Expected paths to be of the same type"); } // Skip past equal prefixes. int idx = 0; while (idx < basePath.getNameCount() && idx < childPath.getNameCount() && basePath.getName(idx).equals(childPath.getName(idx))) { idx++; } // Add ".."s to get to the root of the remainder of the base path. StringBuilder result = new StringBuilder(); for (int i = idx; i < basePath.getNameCount(); i++) { if (!basePath.getName(i).toString().isEmpty()) { result.append(".."); result.append(File.separatorChar); } } // Now add the remainder of the child path. if (idx < childPath.getNameCount()) { result.append(childPath.getName(idx).toString()); } for (int i = idx + 1; i < childPath.getNameCount(); i++) { result.append(File.separatorChar); result.append(childPath.getName(i).toString()); } return basePath.getFileSystem().getPath(result.toString()); }
Example 20
Source File: MCRPath.java From mycore with GNU General Public License v3.0 | 4 votes |
private static boolean isEmpty(Path test) { return test instanceof MCRPath && ((MCRPath) test).isEmpty() || (test.getNameCount() == 1 && test.getName(0).toString().isEmpty()); }