SharePoint服务器端对象模型 之 访问文件和文件夹(Part 4)

 2023-09-05 阅读 16 评论 0

摘要:(四)列表附件 列表的附件也是文件系统的一部分,它依附于普通列表的列表条目之上(文档库没有附件),它的操作在一些地方和文档库中文档的操作非常类似。 1、附件的读取 一个列表条目的附件可以使用SPListItem的Attachments属性访问&

(四)列表附件

列表的附件也是文件系统的一部分,它依附于普通列表的列表条目之上(文档库没有附件),它的操作在一些地方和文档库中文档的操作非常类似。

 

1、附件的读取

一个列表条目的附件可以使用SPListItem的Attachments属性访问,该属性是SPAttachmentCollection类型。这个类型在SharePoint中是一个比较特殊的类型,其特殊之处在于不存在SPAttachment类型。那么SPAttachmentCollection这个集合中存放的又是什么呢?是附件的文件名。通过使用SPWeb的GetFile方法,可以获取到附件对应的SPFile对象,之后就可以和SPFile对象一样进行读取和修改了。读取的方法可以参考下面的程序:

   1: using(SPSite site = new SPSite("http://sp2010/book"))
   2: {
   3:   using(SPWeb web = site.OpenWeb())
   4:   {
   5:     SPListItem item = web.List["Chapters"].Items[0];
   6:     string urlPrefix = item.Attachments.UrlPrefix;
   7:     foreach(string attName in item.Attachments)
   8:     {
   9:       SPFile file = web.GetFile(urlPrefix + attName);
  10:       Console.WriteLine(attName + ":" + file.Length.ToString());
  11:     }
  12:   }
  13: }

可以看到,这段程序中除了GetFile之外的一个关键点在于SPAttachmentCollection的UrlPrefix这个属性。列表的所有附件都保存在列表根目录的Attachments目录中,并按照列表条目的ID划分出子文件夹,通过直接使用UrlPrefix属性,获得某个列表条目所有附件所在文件夹的完整路径。

 

2、附件的添加和删除

附件的添加和删除与文件的上传和删除类似。在添加的时候,使用集合类——即SPAttachmentCollection的Add方法,与上传文件的区别在于,这个Add方法没有其他重载,只能指定附件的文件名和byte[]形式的文件内容,这也就意味着列表条目的附件不适合存放大文件;删除的时候,使用SPAttachmentCollection这个集合类的Delete方法和Recycle方法删除附件。

但是就像列表条目的更新一样,在修改字段值之后,需要调用SPListItem的Update方法才能使修改生效,在使用SPAttachmentCollection的Add、Delete和Recycle方法之后,必须Update一下列表条目,才能使附件的更新生效。为了使对附件的操作更加简便,SPAttachmentCollection提供了三个类似的方法:AddNow、DeleteNow和RecycleNow,使用这三个方法上传或删除附件后,可以直接生效,无需对列表条目进行Update。

转载于:https://www.cnblogs.com/erucy/p/4234318.html

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/2/1588.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息