0

我正在开发一个与 SharePoint 2010 交互的应用程序,其中一个 SP 对象(SPFolder.Subfolders[index]如果您好奇的话)需要一个字符串来索引它返回的项目。问题是我需要向它传递一个字符串变量,但它只接受文字。有没有办法为此目的将变量转换为文字?如果问题不够清楚,请参见下图:

SPFolder folder = rootFolder.SubFolders["Literal folder name"];  // This properly searches the collection (which has already been defined) and returns the folder with the name specified by the literal.

string newFolder = "Literal folder name";  // In this case I'm trying to pass this string as the index.
SPFolder folder = rootFolder.SubFolders[newFolder];  // This is where it throws a "Value does not fall within the expected range" exception when the string is referenced.

如果上下文有帮助,应用程序将获取一组文件夹名称并在库中的特定级别创建它们,然后循环遍历新文件夹以在其中构建复杂的文件夹结构。为此,我必须创建一个文件夹,获取其 url,然后根据该 url 创建其余文件夹。获取新创建的文件夹是我遇到麻烦的地方,因为用我刚刚用来创建它的字符串索引父文件夹是它变得疯狂的地方。

4

3 回答 3

2

这些是相同的:

 SPFolder folder = rootFolder.SubFolders["Literal folder name"];

 string folderName = "Literal folder name";
 SPFolder folder = rootFolder.SubFolders[folderName];

在您的示例中,字符串具有不同的值,这将导致不同的结果。

于 2013-07-03T15:16:52.670 回答
1

文档中的示例显示了通过整数索引访问,您可以在其中检查名称。不是最优雅的,但会起作用

http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spfoldercollection(v=office.14).aspx

于 2013-07-03T15:27:52.080 回答
0

您是否尝试过使用逐字字符串文字?

var testString = @"This is a verbatim string literal";

MSDN对字符串文字和逐字字符串文字之间的区别也有很好的解释。

于 2013-07-03T16:30:25.347 回答