Package org.ametys.core.file
Class FileHelper
- java.lang.Object
-
- org.apache.avalon.framework.logger.AbstractLogEnabled
-
- org.ametys.core.file.FileHelper
-
- All Implemented Interfaces:
Component,LogEnabled,Serviceable
public final class FileHelper extends AbstractLogEnabled implements Component, Serviceable
Helper for managing files and folders of a application directory such as WEB-INF/params
-
-
Field Summary
Fields Modifier and Type Field Description protected CurrentUserProvider_currentUserProviderThe current user provider.static StringROLEThe Avalon role name
-
Constructor Summary
Constructors Constructor Description FileHelper()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Map<String,Object>addFolder(String parentURI, String name, boolean renameIfExists)Create a folderMap<String,Object>addOrUpdateFile(Part part, FileSource parentDir, String mode, boolean unzip)Add or update a fileMap<String,Object>copySource(String srcUri, String parentTargetUri)Copy a file or foldervoiddelete(Path path, DirectoryStream.Filter<Path> fileFilter, boolean recursiveDelete, boolean deleteEmptyDirs)Delete all files corresponding to the file filter into the file tree.Map<String,Object>deleteFile(String fileUri)Remove a folder or a filebooleanhasChild(String parentUri, String name)Tests if a file/folder with given name existsMap<String,Object>moveParameterFile(String srcRelPath, String parentRelPath)Move a file or folder inside a given directoryMap<String,Object>moveSource(String srcUri, String parentTargetUri)Move a file or folderMap<String,Object>renameFile(String fileUri, String name)Rename a file or a folderMap<String,Object>saveFile(String fileURI, String text)Saves text to given file in UTF-8 formatvoidservice(ServiceManager serviceManager)-
Methods inherited from class org.apache.avalon.framework.logger.AbstractLogEnabled
enableLogging, getLogger, setupLogger, setupLogger, setupLogger
-
-
-
-
Field Detail
-
_currentUserProvider
protected CurrentUserProvider _currentUserProvider
The current user provider.
-
-
Constructor Detail
-
FileHelper
public FileHelper()
-
-
Method Detail
-
service
public void service(ServiceManager serviceManager) throws ServiceException
- Specified by:
servicein interfaceServiceable- Throws:
ServiceException
-
saveFile
public Map<String,Object> saveFile(String fileURI, String text) throws IOException
Saves text to given file in UTF-8 format- Parameters:
fileURI- the file URI. Must point to an existing file.text- the UTF-8 file content- Returns:
- A result map.
- Throws:
IOException- If an error occurred while saving
-
addFolder
public Map<String,Object> addFolder(String parentURI, String name, boolean renameIfExists) throws IOException
Create a folder- Parameters:
parentURI- the parent URI, relative to the rootname- the name of the new folder to createrenameIfExists- true if the folder have to be renamed if the folder with same name already exits.- Returns:
- The result Map with the name and uri of created folder, or a boolean "success" to false if an error occurs.
- Throws:
IOException- If an error occurred adding the folder
-
addOrUpdateFile
public Map<String,Object> addOrUpdateFile(Part part, FileSource parentDir, String mode, boolean unzip) throws IOException
Add or update a file- Parameters:
part- The file multipart to uploadparentDir- The parent directorymode- The insertion mode: 'add-rename' or 'update' or null.unzip- true to unzip .zip file- Returns:
- the result map
- Throws:
IOException- If an error occurred manipulating the file
-
deleteFile
public Map<String,Object> deleteFile(String fileUri) throws IOException
Remove a folder or a file- Parameters:
fileUri- the file/folder URI- Returns:
- the result map.
- Throws:
IOException- If an error occurs while removing the folder/file
-
delete
public void delete(Path path, DirectoryStream.Filter<Path> fileFilter, boolean recursiveDelete, boolean deleteEmptyDirs) throws IOException
Delete all files corresponding to the file filter into the file tree.- Parameters:
path- the path to delete (can be a file or a directory)fileFilter- the file filter to applyrecursiveDelete- iftrue, the file tree will be explored to delete filesdeleteEmptyDirs- iftrue, empty dirs will be deleted- Throws:
IOException- if an error occured while exploring or deleting files
-
renameFile
public Map<String,Object> renameFile(String fileUri, String name) throws IOException
Rename a file or a folder- Parameters:
fileUri- the relative URI of the file or folder to renamename- the new name of the file/folder- Returns:
- The result Map with the name, path of the renamed file/folder, or a boolean "already-exist" is a file/folder already exists with this name.
- Throws:
IOException- if an error occurs while renaming the file/folder
-
hasChild
public boolean hasChild(String parentUri, String name) throws IOException
Tests if a file/folder with given name exists- Parameters:
parentUri- the parent folder URIname- the name of the child- Returns:
- true if the file exists
- Throws:
IOException- if an error occurred
-
copySource
public Map<String,Object> copySource(String srcUri, String parentTargetUri) throws IOException
Copy a file or folder- Parameters:
srcUri- The URI of file/folder to copyparentTargetUri- The URI of parent target file- Returns:
- a result map with the name and uri of copied file in case of success.
- Throws:
IOException- If an error occured manipulating the source
-
moveSource
public Map<String,Object> moveSource(String srcUri, String parentTargetUri) throws IOException
Move a file or folder- Parameters:
srcUri- The URI of file/folder to moveparentTargetUri- The URI of parent target file- Returns:
- a result map with the name and uri of moved file in case of success.
- Throws:
IOException- If an error occurred manipulating the source
-
moveParameterFile
public Map<String,Object> moveParameterFile(String srcRelPath, String parentRelPath) throws IOException
Move a file or folder inside a given directory- Parameters:
srcRelPath- The relative URI of file/folder to moveparentRelPath- The URI relative of parent target file- Returns:
- a result map with the name and uri of moved file in case of success.
- Throws:
IOException- If an error occurred manipulating the source
-
-