Sharepoint: differenza tra il titolo, Nome e DisplayName per le cartelle di libreria

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

  •  19-09-2019
  •  | 
  •  

Domanda

Scusate se questo è stato chiesto altrove. Ho guardato, ma non riesco a trovare risposte definitive.

Sto scrivendo un app per SharePoint 2010 che ha bisogno di creare cartelle in una raccolta documenti; uno per ogni "lavoro" che i processi di app, come un posto dove mettere l'output del lavoro. Ma, sto avendo problemi con nome della cartella collisioni. Ogni "lavoro" è codificato come un file XML in un altro elenco di SharePoint. Ad esempio, potrebbe contenere un file XML chiamato "da docx a pdf.xml". Finora ho l'applicazione creare sottocartelle nella lista di output utilizzando il nome file di lavoro meno l'estensione. Quindi, una cartella chiamata "da docx a pdf" in questo caso. Ma, qualche tempo dopo, l'applicazione potrebbe essere necessario rielaborare lo stesso lavoro esatto. Voglio essere in grado di avere un altro sottocartella nella stessa lista come il primo, con lo stesso nome visibile all'utente in un browser ...

Si può fare questo in elenchi di SharePoint? Sembra SPListItems ordinarie hanno nome, DisplayName e Titolo proprietà. Ovviamente, uno di questi deve essere univoco, in modo che SharePoint può identificare in modo univoco tale elemento. Ma che è? E fa lo stesso si applica a SPFolder elementi di un elenco? Credo che qui voglio avere qualcosa di simile a nomi visualizzati cartella duplicati, ma nomi interni univoci. Avete qualche idea su come fare questo? Finora, il mio metodo di merda più o meno così:

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

Questo, ovviamente, non funziona. Tutte le idee su come modificare per avere lo stesso nome visibile, ma diff nomi interni (magari utilizzando GUID ...) ?: D Grazie in anticipo.

È stato utile?

Soluzione

Come nel file system ordinarie, cartelle sotto la stessa sottocartella devono essere univoci. Così, l'ultimo parametro del metodo Add() dovrebbe essere unico, perché indica il nome della cartella.

È possibile asssign tranquillamente un titolo duplicato dopo aver creato la cartella, usando questo pezzo di codice:

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

Ora avrete le cartelle con gli stessi titoli, ma nomi differenti. Eppure, quando si tenta di esplorare queste cartelle da Windows Explorer o SharePoint elenco predefinito vista, che vi mostrerà il nome della cartella (che è unico), non i titoli (che si desidera). Quindi è necessario creare una visualizzazione personalizzata e visualizzare il campo del titolo al posto del nome della cartella.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top