public static FileResources from(final String resourceDirectoryRoot) { return new FileResources(resourceDirectoryRoot); }
public final void copyResourceTo(final String sourceResource, final File targetDirectory) throws IOException { String targetFile = findTargetFileFrom(sourceResource); String targetRelativeDirectory = findTargetSubdirectoryFrom(sourceResource); File destinationDirectory = targetDirectory; if (targetRelativeDirectory.length() > 0) { destinationDirectory = new File(targetDirectory, targetRelativeDirectory); } if (new File(sourceResource).isDirectory()) { File fullTargetDirectory = new File(destinationDirectory, targetFile); fullTargetDirectory.mkdirs(); } else { copyFileFromClasspathToTargetDirectory(sourceResource, destinationDirectory); } }
private void copyFileFromClasspathToTargetDirectory( final String resourcePath, final File targetDirectory) throws IOException { FileOutputStream out = null; InputStream in = null; try { File resourceOnClasspath = new File(resourcePath); if (resourceOnClasspath.exists()) { in = new FileInputStream(resourceOnClasspath); } else { in = this.getClass().getClassLoader().getResourceAsStream(resourcePath); } File destinationFile = new File(targetDirectory, resourceOnClasspath.getName()); if (destinationFile.exists()) { return; } if (destinationFile.getParent() != null) { new File(destinationFile.getParent()).mkdirs(); } out = getOutputStreamForDestination(destinationFile); copyData(in, out); } finally { closeSafely(out, in); } }
public final String findTargetSubdirectoryFrom(final String sourceResource) { int directoryRootStartsAt = StringUtils.lastIndexOf(sourceResource, resourceDirectoryRoot); int relativePathStartsAt = directoryRootStartsAt + resourceDirectoryRoot.length() + 1; String relativePath = sourceResource.substring(relativePathStartsAt); relativePath = stripLeadingSeparatorFrom(relativePath); return directoryIn(relativePath); }
private FileOutputStream getOutputStreamForDestination(File destinationFile) throws FileNotFoundException { FileOutputStream outStream = null; long start = new java.util.Date().getTime(); long timeout = getRetryTimeOut(); long timeElapsed = 0; boolean FILE_NOT_FOUND = true; while (FILE_NOT_FOUND) { try{ timeElapsed = new java.util.Date().getTime() - start; outStream = createOutputStream(destinationFile); FILE_NOT_FOUND = false; }catch(FileNotFoundException fnfe) { if (timeElapsed > timeout) { //timeout throw fnfe; } } } return outStream; }
private void copyFileFromClasspathToTargetDirectory( final String resourcePath, final File targetDirectory) throws IOException { File destinationFile = new File(targetDirectory, new File(resourcePath).getName()); if (destinationFile.exists()) { return; } if (destinationFile.getParent() != null) { new File(destinationFile.getParent()).mkdirs(); } try(InputStream in = fileSource(resourcePath); FileOutputStream out = getOutputStreamForDestination(destinationFile);) { copyData(in, out); } }
public final String findTargetFileFrom(final String sourceResource) { int directoryRootStartsAt = StringUtils.lastIndexOf(sourceResource, resourceDirectoryRoot); int relativePathStartsAt = directoryRootStartsAt + resourceDirectoryRoot.length() + 1; String relativePath = sourceResource.substring(relativePathStartsAt); return filenameIn(relativePath); }
private void copyFileFromClasspathToTargetDirectory( final String resourcePath, final File targetDirectory) throws IOException { FileOutputStream out = null; InputStream in = null; try { File resourceOnClasspath = new File(resourcePath); if (resourceOnClasspath.exists()) { in = new FileInputStream(resourceOnClasspath); } else { in = this.getClass().getClassLoader().getResourceAsStream(resourcePath); } File destinationFile = new File(targetDirectory, resourceOnClasspath.getName()); if (destinationFile.exists()) { return; } if (destinationFile.getParent() != null) { new File(destinationFile.getParent()).mkdirs(); } out = getOutputStreamForDestination(destinationFile); copyData(in, out); } finally { closeSafely(out, in); } }
public final String findTargetSubdirectoryFrom(final String sourceResource) { int directoryRootStartsAt = StringUtils.lastIndexOf(sourceResource, resourceDirectoryRoot); int relativePathStartsAt = directoryRootStartsAt + resourceDirectoryRoot.length() + 1; String relativePath = sourceResource.substring(relativePathStartsAt); relativePath = stripLeadingSeparatorFrom(relativePath); return directoryIn(relativePath); }
private FileOutputStream getOutputStreamForDestination(File destinationFile) throws FileNotFoundException { FileOutputStream outStream = null; long start = new java.util.Date().getTime(); long timeout = getRetryTimeOut(); long timeElapsed = 0; boolean FILE_NOT_FOUND = true; while (FILE_NOT_FOUND) { try{ timeElapsed = new java.util.Date().getTime() - start; outStream = createOutputStream(destinationFile); FILE_NOT_FOUND = false; }catch(FileNotFoundException fnfe) { if (timeElapsed > timeout) { //timeout throw fnfe; } } } return outStream; }
public final String findTargetFileFrom(final String sourceResource) { int directoryRootStartsAt = StringUtils.lastIndexOf(sourceResource, resourceDirectoryRoot); int relativePathStartsAt = directoryRootStartsAt + resourceDirectoryRoot.length() + 1; String relativePath = sourceResource.substring(relativePathStartsAt); return filenameIn(relativePath); }
public final void copyResourceTo(final String sourceResource, final File targetDirectory) throws IOException { String targetFile = findTargetFileFrom(sourceResource); String targetRelativeDirectory = findTargetSubdirectoryFrom(sourceResource); File destinationDirectory = targetDirectory; if (targetRelativeDirectory.length() > 0) { destinationDirectory = new File(targetDirectory, targetRelativeDirectory); } if (new File(sourceResource).isDirectory()) { File fullTargetDirectory = new File(destinationDirectory, targetFile); fullTargetDirectory.mkdirs(); } else { copyFileFromClasspathToTargetDirectory(sourceResource, destinationDirectory); } }
public final String findTargetSubdirectoryFrom(final String sourceResource) { int directoryRootStartsAt = StringUtils.lastIndexOf(sourceResource, resourceDirectoryRoot); int relativePathStartsAt = directoryRootStartsAt + resourceDirectoryRoot.length() + 1; String relativePath = sourceResource.substring(relativePathStartsAt); relativePath = stripLeadingSeparatorFrom(relativePath); return directoryIn(relativePath); }
private FileOutputStream getOutputStreamForDestination(File destinationFile) throws FileNotFoundException { FileOutputStream outStream = null; long start = new java.util.Date().getTime(); long timeout = getRetryTimeOut(); long timeElapsed = 0; boolean FILE_NOT_FOUND = true; while (FILE_NOT_FOUND) { try{ timeElapsed = new java.util.Date().getTime() - start; outStream = createOutputStream(destinationFile); FILE_NOT_FOUND = false; }catch(FileNotFoundException fnfe) { if (timeElapsed > timeout) { //timeout throw fnfe; } } } return outStream; }
public final String findTargetFileFrom(final String sourceResource) { int directoryRootStartsAt = StringUtils.lastIndexOf(sourceResource, resourceDirectoryRoot); int relativePathStartsAt = directoryRootStartsAt + resourceDirectoryRoot.length() + 1; String relativePath = sourceResource.substring(relativePathStartsAt); return filenameIn(relativePath); }
public static FileResources from(final String resourceDirectoryRoot) { return new FileResources(resourceDirectoryRoot); }
public final void copyResourceTo(final String sourceResource, final File targetDirectory) throws IOException { String targetFile = findTargetFileFrom(sourceResource); String targetRelativeDirectory = findTargetSubdirectoryFrom(sourceResource); File destinationDirectory = targetDirectory; if (targetRelativeDirectory.length() > 0) { destinationDirectory = new File(targetDirectory, targetRelativeDirectory); } if (new File(sourceResource).isDirectory()) { File fullTargetDirectory = new File(destinationDirectory, targetFile); fullTargetDirectory.mkdirs(); } else { copyFileFromClasspathToTargetDirectory(sourceResource, destinationDirectory); } }
public static FileResources from(final String resourceDirectoryRoot) { return new FileResources(resourceDirectoryRoot); }