Sharepoint: разница между Title, Name и DisplayName для папок библиотеки - PullRequest
1 голос
/ 08 января 2010

Извините, если об этом спрашивали в другом месте. Я посмотрел, но не могу найти однозначных ответов.

Я пишу приложение для SharePoint 2010, которое должно создавать папки в библиотеке документов; по одному на каждую «работу», которую обрабатывает приложение, в качестве места для вывода результатов работы. Но у меня проблемы с именами папок. Каждое «задание» кодируется в виде XML-файла в другом списке SharePoint. Например, он может содержать XML-файл с именем «от docx до pdf.xml». Пока у меня есть приложение, создающее подпапки в списке вывода, используя имя файла задания без его расширения. Итак, папка с именем «от docx до pdf» в данном случае. Но через некоторое время приложению может потребоваться повторная обработка той же самой задачи. Я хочу иметь возможность иметь другую подпапку в том же списке, что и первая, с таким же именем, видимым пользователю в браузере ...

Можете ли вы сделать это в списках SharePoint? Кажется, что обычные SPListItems имеют свойства Name, DisplayName и Title. Очевидно, что один из них должен быть уникальным, чтобы SharePoint мог однозначно идентифицировать этот элемент. Но что это? И относится ли это к элементам SPFolder в списке? Я предполагаю, что здесь я хочу иметь что-то вроде дублированных отображаемых имен папок, но уникальных внутренних имен. У вас есть идеи, как это сделать? Пока что мой дрянной метод выглядит примерно так:

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

Это, очевидно, не работает. Любые идеи о том, как изменить такое же видимое имя, но с разными внутренними именами (возможно, используя Guids ...) ?: D Заранее спасибо.

1 Ответ

3 голосов
/ 12 января 2010

Как и в обычных файловых системах, папки в одной и той же подпапке должны быть уникальными. Таким образом, последний параметр метода Add() должен быть уникальным, поскольку он указывает имя папки.

Вы можете смело назначать дубликат заголовка после создания папки, используя этот фрагмент кода:

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

Теперь у вас будут папки с одинаковыми заголовками, но разными именами. Тем не менее, когда вы пытаетесь просмотреть эти папки из проводника Windows или представления списка по умолчанию SharePoint, он покажет вам имя папки (уникальное), а не названия (которые вы хотите). Поэтому вам нужно создать пользовательский вид и отобразить поле заголовка вместо имени папки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...