// Get Document Name
String documentName = (String)nodeService.getProperty(actionedUponNodeRef, ContentModel.PROP_NAME);
System.out.println("Get Extension for document: " + documentName);
// Check Document Extension
// Get Mime Type
String contentMimeType = this.contentService.getWriter(actionedUponNodeRef, ContentModel.PROP_CONTENT, true).getMimetype().toString();
System.out.println("Content Mime Type: " + contentMimeType);
String contentExtension = documentName.substring(documentName.lastIndexOf('.')+1, documentName.length());
System.out.println("L'extension est: " + contentExtension);
if (contentMimeType.equals(PDF_MIME_TYPE) && !contentExtension.equals(PDF_EXTENSION)) {
System.out.println("L'extension courrante ne correspond pas au Mime Type courrant");
documentName = documentName.replace(contentExtension, PDF_EXTENSION);
System.out.println("Le nouveau nom est: " + documentName);
nodeService.setProperty(actionedUponNodeRef, ContentModel.PROP_NAME,documentName);
}
Le code fonctionne très bien et me remplace correctement l'extension .doc en .pdf.System.out.println("Node Path: " + nodeService.getPath(actionedUponNodeRef).toString());
ce qui donne comme résultat suivant :Bonjour,euhhhhhhhhh… en clair cela donne quoi ? car je suis un peu largué…
J'ai lu en diagonale mais en ce qui concerne le Path, il n'est effectivement pas construit à partir du nom du document (et des espaces parents) mais à partir du nom des instances de ChildAssociation traversées pour aller de la racine au document. Or certains services créent des noms de child association baroques (genre cm:move pour l'action de déplacement).
Je ne sais pas s'il est possible de renommer la child association a posteriori, mais on peut par contre parfois remédier à ce problème en gérant soi-même la création d'un noeud (et donc de la child association qui le relie à son parent) au lieu de passer par des services de haut niveau.
Je ne sais pas si ça répond à ta question, mais cette petite précision + un passage par le NodeBrowser pour constater les noms mis par défaut par Alfresco peuvent éclairer ta lanterne.
public ChildAssociationRef createNode(
NodeRef parentRef,
QName assocTypeQName,
QName assocQName,
QName nodeTypeQName,
Map<QName, Serializable> properties)
Dans cette méthode le paramètre assocQName est le nom de la child association qui relie le père au fils.// Get Document Name
String documentName = (String)this.nodeService.getProperty(actionedUponNodeRef, ContentModel.PROP_NAME);
System.out.println("Get Extension for document: " + documentName);
// Check Document Extension
// Get Mime Type
String contentMimeType = this.contentService.getWriter(actionedUponNodeRef, ContentModel.PROP_CONTENT, true).getMimetype().toString();
System.out.println("Content Mime Type: " + contentMimeType);
String contentExtension = documentName.substring(documentName.lastIndexOf('.')+1, documentName.length());
System.out.println("L'extension est: " + contentExtension);
if (contentMimeType.equals(PDF_MIME_TYPE) && !contentExtension.equals(PDF_EXTENSION)) {
System.out.println("L'extension courrante ne correspond pas au Mime Type courrant");
documentName = documentName.replace(contentExtension, PDF_EXTENSION);
System.out.println("Le nouveau nom est: " + documentName);
try {
this.fileFolderService.rename(actionedUponNodeRef, documentName);
this.nodeService.setProperty(actionedUponNodeRef, ontentModel.PROP_NAME,documentName);
}
catch (Exception e){
logger.error(e.getMessage());
}
Content from pre 2016 and from language groups that have been closed.
Content is read-only.
By using this site, you are agreeing to allow us to collect and use cookies as outlined in Alfresco’s Cookie Statement and Terms of Use (and you have a legitimate interest in Alfresco and our products, authorizing us to contact you in such methods). If you are not ok with these terms, please do not use this website.