2011-11-17 74 views
1

我试图从附件url中获取SPListItem。 什么I'm目前正在努力:从附件url中获取SPListItem?

string url = "Lists/Tasks/Attachments/27/unnamed.png"; 
SPListItem i = new SPSite(url).OpenWeb().GetFile(url).Item; 

但受“的GetFile(URL)”得到了spfile文件的属性“项”为空,这样就不会炒锅。 “Item”属性似乎只适用于Document-Libraries中的SPFiles ... 有其他方法吗?

谢谢!

+1

附件不是一个列表项。我不确定需要实现什么,但是您检查了属性[SPListItem.Attachments](http://msdn.microsoft.com/zh-cn/library/microsoft.sharepoint.splistitem.attachments.aspx)? –

+0

在这里采取行动http://www.thesharepointblog.net/Lists/Posts/Post.aspx?List=815f255a-d0ef-4258-be2a-28487dc9975c&ID=61 –

+0

我想你们都误解了我的问题。你的链接是有帮助的,但不要让我有办法做到这一点。不过谢谢! –

回答

2

如果我的记忆为我服务,则右附件存储在文件夹/ ListName/Attachments/ItemID /附件中。所以你在这个url中有item id,并且可以使用它来通过list.GetItemById方法来检索你想要的项目。

+0

是的,你是对的,该项目的ID是在该文件的URL,但我希望应该有一个更优雅的方式... –

+1

我认为这是最好的方法,因为只有替代我看到的是迭代超出列表中的项目并检查其附件。我试图找到一个更好的解决方案,但完成了这一个。 – sepulchered

-2

不幸的是附件在对象模型中没有那么多的支持。我认为唯一的办法是解析网址并获取物品ID。没有对象,如SPAttachment,只有SPAttachmentCollection,但它不是一个字符串集合多。

SPFile.Item 

只适用于文档库中的文档,否则为空。