Frage

Entschuldigung, wenn dies anderswo gefragt wurde. Ich habe gesucht, aber keine endgültigen Antworten finden.

Ich schreibe eine App für SharePoint 2010, die Ordner in einer Dokumentbibliothek erstellen muss. Eine für jeden "Job", den die App verarbeitet, als Ort, an dem die Arbeitsplatzausgabe eingesetzt werden kann. Aber ich habe Probleme mit Ordnernamenkollisionen. Jeder "Job" wird als XML -Datei in einer anderen SharePoint -Liste codiert. Beispielsweise kann es eine XML -Datei mit dem Namen "von Docx zu pdf.xml" enthalten. Bisher habe ich die App -Erstellung von Unterordnern in der Ausgabeliste mit dem Namen der Jobdateien abzüglich der Erweiterung. Ein Ordner namens "von Docx zu PDF" in diesem Fall. Einige Zeit später muss die App jedoch möglicherweise den genauen Auftrag neu bearbeiten. Ich möchte in der Lage sein, einen weiteren Unterordner in derselben Liste wie die erste zu haben, wobei der genaue Name dem Benutzer in einem Browser sichtbar ist ...

Können Sie dies in SharePoint -Listen tun? Es scheint, dass gewöhnliche Splistitems Namen, DisplayName und Titeleigenschaften haben. Offensichtlich muss eine davon einzigartig sein, so dass SharePoint diesen Artikel eindeutig identifizieren kann. Aber was ist das? Und gilt dasselbe für Spolder -Elemente in einer Liste? Ich denke, hier möchte ich so etwas wie doppelte Ordneranzeigen, aber eindeutige interne Namen haben. Haben Sie Ideen, wie Sie das machen können? Bisher geht meine beschissene Methode ungefähr so:

 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;
    }

Dies funktioniert offensichtlich nicht. Irgendwelche Ideen, wie man sich ändern kann, um denselben sichtbaren Namen zu haben, aber differenzieren Sie interne Namen (möglicherweise mit Guids ...) ?: D Vielen Dank im Voraus.

War es hilfreich?

Lösung

Wie in normalen Dateisystemen müssen Ordner unter demselben Unterordner eindeutig sein. Somit der letzte Parameter der Add() Die Methode sollte eindeutig sein, da sie den Ordnernamen anzeigt.

Sie können einen doppelten Titel nach dem Erstellen des Ordners mit diesem Code sicher angeben:

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

Jetzt haben Sie Ordner mit denselben Titeln, aber unterschiedlichen Namen. Wenn Sie versuchen, diese Ordner aus Windows Explorer- oder SharePoint -Standardlistenansicht zu stöbern, werden Sie den Ordnernamen (die eindeutig) und nicht die gewünschten Titel angezeigt. Sie müssen also eine benutzerdefinierte Ansicht erstellen und das Titelfeld anstelle des Ordnersamens anzeigen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top