Interface FileFolderService

All Known Implementing Classes:
FileFolderServiceImpl

@AlfrescoPublicApi public interface FileFolderService
Provides methods specific to manipulating files and folders. So this interface provides a simple way of accessing simple trees of files and folders in Alfresco.
Author:
Derek Hulley
See Also:
  • Method Details

    • list

      @Auditable(parameters="contextNodeRef") List<FileInfo> list(NodeRef contextNodeRef)
      Lists immediate child files and folders of the given context node.

      Note: this could be a long list (and will be trimmed at a pre-configured maximum). You should consider using a paging request.

      Parameters:
      contextNodeRef - the node to start searching in
      Returns:
      Returns a list of matching files and folders
    • list

      @Auditable(parameters={"contextNodeRef","files","folders","ignoreTypeQNames","sortProps","pagingRequest"}) org.alfresco.query.PagingResults<FileInfo> list(NodeRef contextNodeRef, boolean files, boolean folders, Set<QName> ignoreTypeQNames, List<Pair<QName,Boolean>> sortProps, org.alfresco.query.PagingRequest pagingRequest)
      Lists page of immediate child files and/or folders of the given context node with optional filtering (exclusion of certain child file/folder subtypes) and sorting

      author janv
      Since:
      4.0
    • list

      @Auditable(parameters={"contextNodeRef","files","folders","ignoreTypeQNames","sortProps","pagingRequest"}) org.alfresco.query.PagingResults<FileInfo> list(NodeRef contextNodeRef, boolean files, boolean folders, String pattern, Set<QName> ignoreTypeQNames, List<Pair<QName,Boolean>> sortProps, org.alfresco.query.PagingRequest pagingRequest)
      Lists page of immediate child files and/or folders of the given context node with pattern matching and optional filtering (exclusion of certain child file/folder subtypes) and sorting Pattern uses '*' as a wildcard
      Since:
      4.0
    • listFiles

      @Auditable(parameters="folderNodeRef") List<FileInfo> listFiles(NodeRef contextNodeRef)
      Lists all immediate child files of the given context node Note: this could be a long list (and will be trimmed at a pre-configured maximum). You should consider using a paging request.
      Parameters:
      contextNodeRef - the folder nodeRef to start searching in
      Returns:
      Returns a list of matching files
    • listFolders

      @Auditable(parameters="contextNodeRef") List<FileInfo> listFolders(NodeRef contextNodeRef)
      Lists all immediate child folders of the given context node Note: this could be a long list (and will be trimmed at a pre-configured maximum). You should consider using a paging request.
      Parameters:
      contextNodeRef - the node to start searching in
      Returns:
      Returns a list of matching folders
    • listDeepFolders

      @Auditable(parameters="contextNodeRef") List<FileInfo> listDeepFolders(NodeRef contextNodeRef, SubFolderFilter filter)
      Deprecated.
      Lists all folders below the given context node, both immediate and lower levels The filter parameter allows subfolders to be excluded from the search.
      Parameters:
      contextNodeRef - the node to start searching in
      filter - - may be null in which case all sub-folders will be searched
    • getLocalizedSibling

      @Auditable(parameters="nodeRef") NodeRef getLocalizedSibling(NodeRef nodeRef)
      Uses the cm:name of the given node and attempts to find a sibling node with a more specific localized name. The node passed in must represent the base of the possible translations i.e. the base name for the resource names will be calculated using the filename without extension. The locale used will come from the thread's default locale.
      Parameters:
      nodeRef - the node that acts as the baseline for the search
      Returns:
      Returns a sibling node or the original node
    • searchSimple

      @Auditable(parameters={"contextNodeRef","name"}) NodeRef searchSimple(NodeRef contextNodeRef, String name)
      Get a node ref of the node that has the name within the parent node
      Parameters:
      contextNodeRef - the parent node
      name - the name of the node to search for
      Returns:
      Returns the node that has the given name - or null if not found
    • search

      @Auditable(parameters={"contextNodeRef","namePattern","includeSubFolders"}) List<FileInfo> search(NodeRef contextNodeRef, String namePattern, boolean includeSubFolders)
      Deprecated.
      for shallow search use list, listFolders, listFiles, searchSimple. For deep listing use listDeepFolders. Avoid calling this method with any name pattern except for "*".
      Searches for all files and folders with the matching name pattern, using wildcard characters * and ?. Warning: Please avoid using this method with any "namePattern" other than "*". Although it works, its performance is poor, which is why this method is deprecated.
      Parameters:
      contextNodeRef - the context of the search. This node will never be returned as part of the search results.
      namePattern - the name of the file or folder to search for, or a wildcard pattern to search for.
      includeSubFolders - true to search the entire hierarchy below the search context
      Returns:
      Returns a list of file or folder matches
      See Also:
    • search

      @Auditable(parameters={"contextNodeRef","namePattern","fileSearch","folderSearch","includeSubFolders"}) List<FileInfo> search(NodeRef contextNodeRef, String namePattern, boolean fileSearch, boolean folderSearch, boolean includeSubFolders)
      Deprecated.
      for shallow search use list, listFolders, listFiles, searchSimple. For deep listing use listDeepFolders. Avoid calling this method with any name pattern except for "*".
      Perform a search against the name of the files or folders within a hierarchy. Wildcard characters are * and ?. Warning: Please avoid using this method with any "namePattern" other than "*". Although it works, its performance is poor which is why this method is deprecated.
      Parameters:
      contextNodeRef - the context of the search. This node will never be returned as part of the search results.
      namePattern - the name of the file or folder to search for, or a wildcard pattern to search for.
      fileSearch - true if file types are to be included in the search results
      folderSearch - true if folder types are to be included in the search results
      includeSubFolders - true to search the entire hierarchy below the search context
      Returns:
      Returns a list of file or folder matches
    • rename

      @Auditable(parameters={"fileFolderRef","newName"}) FileInfo rename(NodeRef fileFolderRef, String newName) throws FileExistsException, FileNotFoundException
      Rename a file or folder in its current location
      Parameters:
      fileFolderRef - the file or folder to rename
      newName - the new name
      Returns:
      Return the new file info
      Throws:
      FileExistsException - if a file or folder with the new name already exists
      FileNotFoundException - the file or folder reference doesn't exist
    • move

      @Auditable(parameters={"sourceNodeRef","targetParentRef","newName"}) FileInfo move(NodeRef sourceNodeRef, NodeRef targetParentRef, String newName) throws FileExistsException, FileNotFoundException
      Move a file or folder to a new name and/or location.

      If both the parent folder and name remain the same, then nothing is done.

      Parameters:
      sourceNodeRef - the file or folder to move
      targetParentRef - the new parent node to move the node to - null means rename in situ
      newName - the name to change the file or folder to - null to keep the existing name
      Returns:
      Returns the new file info
      Throws:
      FileExistsException
      FileNotFoundException
    • moveFrom

      @Auditable(parameters={"sourceNodeRef","sourceParentRef","targetParentRef","newName"}) FileInfo moveFrom(NodeRef sourceNodeRef, NodeRef sourceParentRef, NodeRef targetParentRef, String newName) throws FileExistsException, FileNotFoundException
      Move a file or folder to a new name and/or location.

      If both the parent folder and name remain the same, then nothing is done.

      It is possible to specify which is the parent node when moving nodes; nodes can reside in multiple locations.

      Parameters:
      sourceNodeRef - the file or folder to move
      sourceParentRef - the source parent of node - null means move from primary parent
      targetParentRef - the new parent node to move the node to - null means rename in situ
      newName - the name to change the file or folder to - null to keep the existing name
      Returns:
      Returns the new file info
      Throws:
      FileExistsException
      FileNotFoundException
    • move

      @Auditable(parameters={"sourceNodeRef","sourceParentRef","targetParentRef","newName"}) FileInfo move(NodeRef sourceNodeRef, NodeRef sourceParentRef, NodeRef targetParentRef, String newName) throws FileExistsException, FileNotFoundException
      Throws:
      FileExistsException
      FileNotFoundException
    • copy

      @Auditable(parameters={"sourceNodeRef","targetParentRef","newName"}) FileInfo copy(NodeRef sourceNodeRef, NodeRef targetParentRef, String newName) throws FileExistsException, FileNotFoundException
      Copy a source file or folder. The source can be optionally renamed and optionally moved into another folder.

      If both the parent folder and name remain the same, then nothing is done.

      Parameters:
      sourceNodeRef - the file or folder to copy
      targetParentRef - the new parent node to copy the node to - null means rename in situ
      newName - the new name, or null to keep the existing name.
      Returns:
      Return the new file info
      Throws:
      FileExistsException
      FileNotFoundException
    • create

      @Auditable(parameters={"parentNodeRef","name","typeQName"}) FileInfo create(NodeRef parentNodeRef, String name, QName typeQName) throws FileExistsException
      Create a file or folder; or any valid node of type derived from file or folder.

      The association QName for the patch defaults to cm:filename i.e. the Content Model namespace with the filename as the local name.

      Parameters:
      parentNodeRef - the parent node. The parent must be a valid folder.
      name - the name of the node
      typeQName - the type to create
      Returns:
      Returns the new node's file information
      Throws:
      FileExistsException
    • create

      @Auditable(parameters={"parentNodeRef","name","typeQName"}) FileInfo create(NodeRef parentNodeRef, String name, QName typeQName, QName assocQName) throws FileExistsException
      Create a file or folder; or any valid node of type derived from file or folder
      Parameters:
      parentNodeRef - the parent node. The parent must be a valid folder.
      name - the name of the node
      typeQName - the type to create
      assocQName - the association QName to set for the path (may be null).
      Returns:
      Returns the new node's file information
      Throws:
      FileExistsException
    • delete

      @Auditable(parameters="nodeRef") void delete(NodeRef nodeRef)
      Delete a file or folder
      Parameters:
      nodeRef - the node to delete
    • getNamePath

      @Auditable(parameters={"rootNodeRef","nodeRef"}) List<FileInfo> getNamePath(NodeRef rootNodeRef, NodeRef nodeRef) throws FileNotFoundException
      Get the file or folder information from the root down to and including the node provided.
      • The root node can be of any type and is not included in the path list.
      • Only the primary path is considered. If the target node is not a descendant of the root along purely primary associations, then an exception is generated.
      • If an invalid type is encountered along the path, then an exception is generated.
      Parameters:
      rootNodeRef - the start of the returned path, or null if the store root node must be assumed.
      nodeRef - a reference to the file or folder
      Returns:
      Returns a list of file/folder infos from the root (excluded) down to and including the destination file or folder
      Throws:
      FileNotFoundException - if the node could not be found
    • getNameOnlyPath

      @Auditable(parameters={"rootNodeRef","nodeRef"}) List<String> getNameOnlyPath(NodeRef rootNodeRef, NodeRef nodeRef) throws FileNotFoundException
      Get the file or folder names from the root down to and including the node provided.
      • The root node can be of any type and is not included in the path list.
      • Only the primary path is considered. If the target node is not a descendant of the root along purely primary associations, then an exception is generated.
      • If an invalid type is encountered along the path, then an exception is generated.
      Parameters:
      rootNodeRef - the start of the returned path, or null if the store root node must be assumed.
      nodeRef - a reference to the file or folder
      Returns:
      Returns a list of file/folder names from the root (excluded) down to and including the destination file or folder
      Throws:
      FileNotFoundException - if the node could not be found
    • resolveNamePath

      @Auditable(parameters={"rootNodeRef","pathElements"}) FileInfo resolveNamePath(NodeRef rootNodeRef, List<String> pathElements) throws FileNotFoundException
      Resolve a file or folder name path from a given root node down to the final node.
      Parameters:
      rootNodeRef - the start point node - a cm:folder type or subtype, e.g. the Company Home's nodeRef
      pathElements - a list of names in the path. Do not include the referenced rootNodeRef's path element.
      Returns:
      Returns the info of the file or folder
      Throws:
      FileNotFoundException - if no file or folder exists along the path
    • resolveNamePath

      @Auditable(parameters={"rootNodeRef","pathElements","mustExist"}) FileInfo resolveNamePath(NodeRef rootNodeRef, List<String> pathElements, boolean mustExist) throws FileNotFoundException
      Resolve a file or folder name path from a given root node down to the final node.
      Parameters:
      rootNodeRef - the start point node - a cm:folder type or subtype, e.g. the Company Home's nodeRef
      pathElements - a list of names in the path. Do not include the referenced rootNodeRef's path element.
      Returns:
      Returns the info of the file or folder or null if mustExist is false and the file does not exist
      Throws:
      FileNotFoundException - if no file or folder exists along the path and mustExist is true
    • getFileInfo

      @Auditable(parameters="nodeRef") FileInfo getFileInfo(NodeRef nodeRef)
      Get the file info (name, folder, etc) for the given node
      Parameters:
      nodeRef - the node to get info for
      Returns:
      Returns the file info or null if the node does not represent a file or folder
    • getReader

      @Auditable(parameters="nodeRef") ContentReader getReader(NodeRef nodeRef)
      Get the reader to the file represented by the node according to the File/Folder model. (This is not the same as the method on the ContentService)
      Parameters:
      nodeRef - the content node
      Returns:
      Returns a handle to the content associated with the node
    • getWriter

      @Auditable(parameters="nodeRef") ContentWriter getWriter(NodeRef nodeRef)
      Get the writer to the file represented by the node according to the File/Folder model. (This is not the same as the method on the ContentService)
      Parameters:
      nodeRef - the content node
      Returns:
      Returns a handle to the content associated with the node
    • exists

      @Auditable(parameters="nodeRef") boolean exists(NodeRef nodeRef)
      Check the validity of a node reference
      Returns:
      returns true if the NodeRef is valid
    • getType

      @Auditable(parameters="typeQName") FileFolderServiceType getType(QName typeQName)
      Checks the type for whether it is a recognised file or folder type or is invalid for the FileFolderService.
      Parameters:
      typeQName - the type to check
      Returns:
      - the type
    • isHidden

      @Deprecated boolean isHidden(NodeRef nodeRef)
    • setHidden

      @Deprecated void setHidden(NodeRef nodeRef, boolean isHidden)
    • list

      @Auditable(parameters="rootNodeRef") org.alfresco.query.PagingResults<FileInfo> list(NodeRef rootNodeRef, Set<QName> searchTypeQNames, Set<QName> ignoreAspectQNames, List<Pair<QName,Boolean>> sortProps, org.alfresco.query.PagingRequest pagingRequest)
      Lists page of immediate child objects of the given context node with specification of which types to list and optional filtering (exclusion of certain child file/folder subtypes) and sorting
      Parameters:
      rootNodeRef - NodeRef
      searchTypeQNames - QNames of types to list
      pagingRequest - PagingRequest
      Returns:
      list of node refs, never null
    • list

      @Auditable(parameters="rootNodeRef") org.alfresco.query.PagingResults<FileInfo> list(NodeRef rootNodeRef, Set<QName> assocTypeQNames, Set<QName> searchTypeQNames, Set<QName> ignoreAspectQNames, List<Pair<QName,Boolean>> sortProps, List<FilterProp> filterProps, org.alfresco.query.PagingRequest pagingRequest)
      Lists page of immediate child objects of the given context node with specification of which types to list and optional filtering (exclusion of certain child file/folder subtypes) and sorting
      Parameters:
      rootNodeRef - NodeRef
      assocTypeQNames - QNames of assoc types to list
      searchTypeQNames - QNames of node types to list
      pagingRequest - PagingRequest
      Returns:
      list of node refs, never null
    • toFileInfoList

      @Auditable(parameters="nodeRefs") List<FileInfo> toFileInfoList(List<NodeRef> nodeRefs)
      Helper method to transform a list of NodeRef to a list of FileInfo
      Returns:
      list of FileInfo