2011-11-17 34 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 

只適用於文檔庫中的文檔,否則爲空。