Package com.vaadin.flow.internal
Class FileIOUtils
java.lang.Object
com.vaadin.flow.internal.FileIOUtils
Utility class for file I/O operations, including conditional file writing,
file searching, and content comparison.
For internal use only. May be renamed or removed in a future release.
- Since:
- 25.0
-
Method Summary
Modifier and TypeMethodDescriptionstatic voidcloseQuietly(AutoCloseable closeable) Closes a resource quietly without throwing an exception.static booleancompareIgnoringIndentationAndEOL(String content1, String content2, BiPredicate<String, String> compareFn) Compare two file content strings ignoring indentation and EOL characters.static booleancompareIgnoringIndentationEOLAndWhiteSpace(String content1, String content2, BiPredicate<String, String> compareFn) Compare two file content strings ignoring indentation, EOL characters and white space where it does not matter (before and after {, }, ' and : chars).static booleancontentEquals(InputStream input1, InputStream input2) Compares the content of two InputStreams.static voidcopyDirectory(File source, File target) Copies a directory recursively.static voidcopyDirectory(File source, File target, FileFilter filter) Copies a directory recursively with a file filter.static voidDeletes a file, or a directory and its contents, recursively.static voidDeletes a file, or a directory and its contents, recursively.static booleandeleteFileQuietly(File file) Deprecated, for removal: This API element is subject to removal in a future version.static booleandeleteQuietly(File file) Deletes a file, or a directory and its contents, logging a warning that explains how to unblock the deletion if it fails.static booleandeleteQuietly(Path path) Deletes a file, or a directory and its contents, logging a warning that explains how to unblock the deletion if it fails.getFilesByPattern(Path baseDir, String pattern) Get a list of files in a given directory that match a given glob pattern.static FileTry determining the project folder from the classpath.static FileGets the user's home directory.static booleanisEmptyDirectory(Path directory) Checks if a directory is empty.static booleanisProbablyTemporaryFile(File file) Checks if the given file is likely a temporary file created by an editor.Lists all files in a directory with the specified extensions, recursively.static StringremoveExtension(String filename) Removes the extension from a filename.static StringurlToString(URL url) Reads the content from given URL into UTF 8 String.static booleanwildcardMatch(String text, String pattern) Checks if a string matches a wildcard pattern.static booleanwriteIfChanged(File file, String content) Writes the given content into the given file unless the file already contains that content.static booleanwriteIfChanged(File file, List<String> content) Writes the given content into the given file unless the file already contains that content.
-
Method Details
-
deleteFileQuietly
Deprecated, for removal: This API element is subject to removal in a future version.usedeleteQuietly(File)instead, which also deletes directory contents and logs why a deletion failed instead of failing silentlyDeletes file if it exists and eats exceptions. Note, this is an internal helper method, use only from framework code.- Parameters:
file- to be deleted- Returns:
- true if succeeded
-
deleteQuietly
Deletes a file, or a directory and its contents, logging a warning that explains how to unblock the deletion if it fails. Note, this is an internal helper method, use only from framework code.- Parameters:
file- the file or directory to delete, may benull- Returns:
trueif the file was deleted or did not exist- Since:
- 25.3
-
deleteQuietly
Deletes a file, or a directory and its contents, logging a warning that explains how to unblock the deletion if it fails. Note, this is an internal helper method, use only from framework code.- Parameters:
path- the file or directory to delete, may benull- Returns:
trueif the file was deleted or did not exist- Since:
- 25.3
-
urlToString
Reads the content from given URL into UTF 8 String. Note, this is an internal helper method, use only from framework code.- Parameters:
url- the URL to read- Returns:
- string from the content
- Throws:
IOException
-
copyDirectory
Copies a directory recursively.Relative symbolic links that point to a location inside the source directory are copied as links, so they keep working in the copy. Other symbolic links to files are followed and the file content is copied. Other symbolic links to directories are not traversed: an empty directory is created in their place.
- Parameters:
source- the source directorytarget- the target directory- Throws:
IOException- if an I/O error occurs
-
copyDirectory
Copies a directory recursively with a file filter. Symbolic links are handled as incopyDirectory(File, File).- Parameters:
source- the source directorytarget- the target directoryfilter- the file filter to apply, or null to copy all files- Throws:
IOException- if an I/O error occurs
-
delete
Deletes a file, or a directory and its contents, recursively. Does nothing if the file does not exist.Symbolic links and Windows junctions are removed as links, the contents they point to are left untouched.
- Parameters:
file- the file or directory to delete- Throws:
IOException- if the file or any of its contents could not be deleted, with a message describing how the deletion can be unblocked
-
delete
Deletes a file, or a directory and its contents, recursively. Does nothing if the file does not exist.Symbolic links and Windows junctions are removed as links, the contents they point to are left untouched.
- Parameters:
path- the file or directory to delete- Throws:
IOException- if the file or any of its contents could not be deleted, with a message describing how the deletion can be unblocked- Since:
- 25.3
-
getUserDirectory
Gets the user's home directory.- Returns:
- the user's home directory
-
listFiles
public static List<File> listFiles(File directory, String[] extensions, boolean recursive) throws IOException Lists all files in a directory with the specified extensions, recursively.- Parameters:
directory- the directory to searchextensions- the file extensions to include (without dots)recursive- whether to search recursively- Returns:
- a list of files matching the criteria
- Throws:
IOException- if an I/O error occurs
-
contentEquals
Compares the content of two InputStreams.- Parameters:
input1- the first InputStreaminput2- the second InputStream- Returns:
- true if the content is equal, false otherwise
- Throws:
IOException- if an I/O error occurs
-
closeQuietly
Closes a resource quietly without throwing an exception.- Parameters:
closeable- the resource to close
-
removeExtension
Removes the extension from a filename.- Parameters:
filename- the filename- Returns:
- the filename without extension
-
wildcardMatch
Checks if a string matches a wildcard pattern.- Parameters:
text- the text to checkpattern- the wildcard pattern (* and ? are supported)- Returns:
- true if the text matches the pattern, false otherwise
-
isEmptyDirectory
Checks if a directory is empty.- Parameters:
directory- the directory to check- Returns:
- true if the directory is empty, false otherwise
- Throws:
IOException- if an I/O error occurs
-
writeIfChanged
Writes the given content into the given file unless the file already contains that content.- Parameters:
file- the file to write tocontent- the lines to write- Returns:
- true if the content was written to the file, false otherwise
- Throws:
IOException- if something went wrong
-
writeIfChanged
Writes the given content into the given file unless the file already contains that content.- Parameters:
file- the file to write tocontent- the content to write- Returns:
- true if the content was written to the file, false otherwise
- Throws:
IOException- if something went wrong
-
getProjectFolderFromClasspath
Try determining the project folder from the classpath.- Returns:
- A file referring to the project folder or null if the folder could not be determined
-
isProbablyTemporaryFile
Checks if the given file is likely a temporary file created by an editor.- Parameters:
file- the file to check- Returns:
- true if the file is likely a temporary file, false otherwise
-
getFilesByPattern
Get a list of files in a given directory that match a given glob pattern.- Parameters:
baseDir- a directory to walk inpattern- glob pattern to filter files, e.g. "*.js".- Returns:
- a list of files matching a given pattern
- Throws:
IOException- if an I/O error is thrown while walking through the tree in base directory
-
compareIgnoringIndentationAndEOL
public static boolean compareIgnoringIndentationAndEOL(String content1, String content2, BiPredicate<String, String> compareFn) Compare two file content strings ignoring indentation and EOL characters.- Parameters:
content1- the first file content to comparecontent2- the second file content to comparecompareFn- a function to compare the normalized strings- Returns:
- true if the normalized strings are equal, false otherwise
-
compareIgnoringIndentationEOLAndWhiteSpace
public static boolean compareIgnoringIndentationEOLAndWhiteSpace(String content1, String content2, BiPredicate<String, String> compareFn) Compare two file content strings ignoring indentation, EOL characters and white space where it does not matter (before and after {, }, ' and : chars).- Parameters:
content1- the first file content to comparecontent2- the second file content to comparecompareFn- a function to compare the normalized strings- Returns:
- true if the normalized strings are equal, false otherwise
-
deleteQuietly(File)instead, which also deletes directory contents and logs why a deletion failed instead of failing silently