SharePoint SPFolder.SubFolders.Add未实际添加文件夹

8

我有几个文档库,它们只是标准库,没有关联的自定义内容类型或其他内容。我正在尝试向它们添加子文件夹,但在某些情况下,它就无法正常工作。

SPFolder parent = library.RootFolder;
SPFolder child = parent.SubFolders.Add(subfoldername);
parent.Update();
bool exists = child.Exists;   // This is false

当我尝试通过代码添加名为M1 Spectrum CRC w-out CMN67 E02_files的子文件夹时,尽管Add方法似乎执行成功,但它无法添加文件夹。当我尝试通过基于浏览器的标准SharePoint列表UI添加具有完全相同名称的文件夹时,我成功地添加了一个文件夹,但它的名称不同:

M1 Spectrum CRC w-out CMN67 E02_files_

请注意,该SharePoint创建的文件夹末尾带有下划线。这是合法的Windows文件夹名称,并且不包含任何html不友好的字符。那么,出了什么问题?我是否忽略了一些明显的东西?
2个回答

8

这是因为以 _files 结尾的文件夹是 MS Office 客户端应用在将文档保存为 HTML 时创建的一种特殊类型。Office 应用程序将所有网页资源文件(如图像和 CSS 文件)保存到该文件夹中。但是,它不能通过 SharePoint 对象模型进行操作 - 如果你问我,这真是一团糟!唯一的解决方案是不要创建以 _files 结尾的文件夹。


1
谢谢...是的,这有点傻。当报告具有以_files结尾的文件夹结构的名称时,导入基于HTML的报告变得不必要地困难。噢,那好吧。至少现在原因更清晰了!谢谢! - Chris Farmer
1
有趣的微软问题! :) 我打赌这不可能是真的……但它确实发生了。真是个笑话!实现这样一个东西需要修复什么 - 他们为什么不干脆禁止它呢? - Mosca Pt
是的,那不好笑。 - David Clarke

-1

尝试

SPWeb site = new SPSite(sharepointURL).OpenWeb();
site.AllowUnsafeUpdates = true;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接