Sharepoint: différence entre le titre, le nom et DisplayName pour les dossiers bibliothèque

StackOverflow https://stackoverflow.com/questions/2025137

  •  19-09-2019
  •  | 
  •  

Question

Désolé si cela a été demandé ailleurs. Je l'ai regardé, mais ne trouve pas de réponses définitives.

Je vous écris une application pour SharePoint 2010 qui a besoin de créer des dossiers dans une bibliothèque de documents; une pour chaque « job » que les procédés d'application, comme un endroit pour mettre la sortie de l'emploi. Mais, je vais avoir des problèmes avec les collisions de noms de dossier. Chaque « travail » est codé comme un fichier XML dans une autre liste SharePoint. Par exemple, il peut contenir un fichier xml appelé « de docx à pdf.xml ». Jusqu'à présent, j'ai l'application créer des sous-dossiers dans la liste de sortie en utilisant le nom de fichiers de travail moins l'extension. Ainsi, un dossier appelé « de docx en pdf » dans ce cas. Mais, quelque temps plus tard, l'application pourrait devoir retraiter exactement le même travail. Je veux être en mesure d'avoir un autre sous-dossier dans la même liste que le premier, avec le même nom visible pour l'utilisateur dans un navigateur ...

Pouvez-vous faire dans les listes de SharePoint? Il semble SPListItems ordinaires ont Nom, propriétés DisplayName et le titre. De toute évidence, l'un d'entre eux doit être unique, de sorte que SharePoint peut identifier de façon unique cet élément. Mais qui est-il? Et ce la même chose à SPFolder éléments dans une liste? Je suppose ici que je veux avoir quelque chose comme les noms d'affichage des dossiers en double, mais les noms internes uniques. Avez-vous des idées sur la façon de le faire? Jusqu'à présent, ma méthode merdique va quelque chose comme ceci:

 private SPFolder CreateSubFolder(SPList list, string visibleFolderName)
    {           
        // create a new folder under the root folder
        SPListItem newFolder = list.AddItem("", SPFileSystemObjectType.Folder, visibleFolderName);            
        newFolder.Update();               
        return newFolder.Folder;
    }

Cela ne fonctionne évidemment pas. Toutes les idées sur la façon de modifier pour avoir le même nom visible, mais diff noms internes (peut-être à l'aide Guids ...) ?: D Merci à l'avance.

Était-ce utile?

La solution

Comme dans les systèmes de fichiers ordinaires, dossiers sous le même sous-dossier doit être unique. Ainsi, le dernier paramètre de la méthode Add() doit être unique, car il indique le nom du dossier.

Vous pouvez en toute sécurité asssign un titre en double après avoir créé le dossier, en utilisant ce morceau de code:

SPListItem newFolder = list.Items.Add("", SPFileSystemObjectType.Folder, uniqueFolderName);
newFolder["Title"] = "New Folder"; // Can be duplicated
newFolder.Update();

Maintenant, vous aurez des dossiers avec des mêmes titres, mais des noms différents. Pourtant, lorsque vous essayez de parcourir ces dossiers de l'Explorateur Windows ou SharePoint vue de la liste par défaut, il vous montrera le nom du dossier (qui est unique), et non pas les titres (que vous voulez). Donc, vous devez créer une vue personnalisée et afficher le champ titre au lieu du nom du dossier.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top