Sharepoint:库文件夹的标题、名称和显示名称之间的差异

Sharepoint:库文件夹的标题、名称和显示名称之间的差异,sharepoint,sharepoint-2010,Sharepoint,Sharepoint 2010,对不起,如果有人在别处问过这个问题。我已经看过了,但找不到任何明确的答案 我正在为SharePoint 2010编写一个应用程序,它需要在文档库中创建文件夹;应用程序处理的每个“作业”对应一个,作为放置作业输出的位置。但是,我遇到了文件夹名称冲突的问题。每个“作业”在另一个SharePoint列表中编码为xml文件。例如,它可能包含一个名为“from docx to pdf.xml”的xml文件。到目前为止,我已经让应用程序在输出列表中使用作业文件名减去扩展名创建子文件夹。在本例中,一个名为“从

对不起,如果有人在别处问过这个问题。我已经看过了,但找不到任何明确的答案

我正在为SharePoint 2010编写一个应用程序,它需要在文档库中创建文件夹;应用程序处理的每个“作业”对应一个,作为放置作业输出的位置。但是,我遇到了文件夹名称冲突的问题。每个“作业”在另一个SharePoint列表中编码为xml文件。例如,它可能包含一个名为“from docx to pdf.xml”的xml文件。到目前为止,我已经让应用程序在输出列表中使用作业文件名减去扩展名创建子文件夹。在本例中,一个名为“从docx到pdf”的文件夹。但是,一段时间后,应用程序可能需要重新处理完全相同的作业。我希望能够在与第一个子文件夹相同的列表中拥有另一个子文件夹,并且用户可以在浏览器中看到完全相同的名称

您可以在SharePoint列表中执行此操作吗?普通的SPListItem似乎有Name、DisplayName和Title属性。显然,其中一项必须是唯一的,以便SharePoint能够唯一地标识该项。但它是哪一个?这是否也适用于列表中的文件夹项目?我想在这里我想有一些类似重复的文件夹显示名称,但唯一的内部名称。你对怎么做有什么想法吗?到目前为止,我的蹩脚方法是这样的:

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

这显然行不通。关于如何更改为具有相同的可见名称,但内部名称不同(可能使用GUID…)的任何想法:D提前感谢。

与普通文件系统一样,同一子文件夹下的文件夹必须是唯一的。因此,
Add()
方法的最后一个参数应该是唯一的,因为它指示文件夹名称

创建文件夹后,您可以使用以下代码安全地签名重复的标题:

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

现在,您将拥有标题相同但名称不同的文件夹。但是,当您尝试从Windows资源管理器或SharePoint默认列表视图浏览这些文件夹时,它将显示文件夹名称(唯一),而不是标题(您想要的)。因此,您需要创建一个自定义视图,并显示标题字段,而不是文件夹名称。

太棒了!非常感谢您!微软通常会过度使用其技术文档,但要找到您所阐明的观点的解释几乎是不可能的(至少对于SP2010而言)实际上,这似乎不起作用。。。但我认为这是因为SPFolders没有标题属性,而SPListItem则有。基本上,我不能做我想做的事情,除非我创建了SPFolder的子类。。如果可能的话。不管怎样,问题回答了。干杯。如果您从我的示例中注意到,实际上newFolder变量是一个SPListItem对象,而不是SPFolder对象,那么可以设置Title属性。顺便说一下,您可以创建自己的ContentType,它派生文件夹内容类型。但遗憾的是,您不能从API中对SPFolder进行子类化,因为它没有公共构造函数。对于阅读此答案的其他人,请注意对SPListItem对象而不是SPFolder对象调用“Update”方法!实际上,Sharepoint不使用这些字段来唯一标识列表项。唯一必须唯一的是“Id”字段,该字段与创建的项目一起分配,您不能更改它。