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
_currentUserProvider
The current user provider.static String
ROLE
The 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 foldervoid
delete(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 fileboolean
hasChild(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 formatvoid
service(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:
service
in 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
-
-