Class IOHelper
java.lang.Object
org.apache.activemq.util.IOHelper
Collection of File and Folder utility methods.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected static final intprotected static final int -
Method Summary
Modifier and TypeMethodDescriptionstatic voidstatic voidcopyFile(File src, File dest, FilenameFilter filter) static voidcopyInputStream(InputStream in, OutputStream out) static voidcopySingleFile(File src, File dest) static booleanstatic booleandeleteChildren(File parent) static booleandeleteFile(File fileToDelete) static booleandeleteFileNonBlocking(File file) Non-blocking file deletion.static Stringstatic StringAllows a system property to be used to overload the default data directory which can be useful for forcing the test cases to use a target/ prefixstatic Stringstatic intstatic intstatic booleanCheck if we're running on Windows.static voidstatic voidMove a file to a target directory.static voidmoveFiles(File srcDirectory, File targetDirectory, FilenameFilter filter) static voidrenameFile(File src, File dest) Rename a file to a new name/path.static voidscheduleAsyncDelete(File file) Schedule a file for async deletion.static StringConverts any string into a string that is safe to use as a file name.static StringtoFileSystemSafeName(String name) static StringtoFileSystemSafeName(String name, boolean dirSeparators, int maxFileLength) Converts any string into a string that is safe to use as a file name.
-
Field Details
-
MAX_DIR_NAME_LENGTH
protected static final int MAX_DIR_NAME_LENGTH -
MAX_FILE_NAME_LENGTH
protected static final int MAX_FILE_NAME_LENGTH
-
-
Method Details
-
scheduleAsyncDelete
Schedule a file for async deletion. Used when immediate deletion fails on Windows. The file will be deleted in the background when it becomes unlocked. -
deleteFileNonBlocking
Non-blocking file deletion. Tries to delete once, and if it fails, schedules async cleanup instead of blocking with retries. This is safe to call from synchronized blocks as it never sleeps or retries.- Parameters:
file- the file to delete- Returns:
- true if deleted immediately, false if scheduled for async cleanup
-
isWindows
public static boolean isWindows()Check if we're running on Windows. -
getDefaultDataDirectory
-
getDefaultStoreDirectory
-
getDefaultDirectoryPrefix
Allows a system property to be used to overload the default data directory which can be useful for forcing the test cases to use a target/ prefix -
toFileSystemDirectorySafeName
-
toFileSystemSafeName
-
toFileSystemSafeName
Converts any string into a string that is safe to use as a file name. The result will only include ascii characters and numbers, and the "-","_", and "." characters.- Parameters:
name-dirSeparators-maxFileLength-- Returns:
- file system safe name
-
delete
-
deleteFile
-
deleteChildren
-
renameFile
Rename a file to a new name/path. Non-blocking on failure. Strategy: rename -> NIO move -> copy + async delete of source.- Parameters:
src- the source filedest- the destination file (full path with new name)- Throws:
IOException
-
moveFile
Move a file to a target directory. Non-blocking - uses async cleanup for source on Windows. Strategy: rename -> NIO move -> copy + async delete of source.- Parameters:
src- the source file to movetargetDirectory- the target directory (must be a directory)- Throws:
IOException
-
moveFiles
public static void moveFiles(File srcDirectory, File targetDirectory, FilenameFilter filter) throws IOException - Throws:
IOException
-
copyFile
- Throws:
IOException
-
copyFile
- Throws:
IOException
-
copySingleFile
- Throws:
IOException
-
copyInputStream
- Throws:
IOException
-
getMaxDirNameLength
public static int getMaxDirNameLength() -
getMaxFileNameLength
public static int getMaxFileNameLength() -
mkdirs
- Throws:
IOException
-