当前位置: 代码迷 >> SharePoint >> 如何取出来sharepoint数据库中的流文件
  详细解决方案

如何取出来sharepoint数据库中的流文件

热度:299   发布时间:2016-05-02 07:32:04.0
怎么取出来sharepoint数据库中的流文件
本帖最后由 lyjia2001 于 2011-12-21 16:23:57 编辑
我现在需要取sharepoint文档库中存储的履历文件,不是通过页面方式直接打开的,是想从数据库里面把旧版本的文件取出来,
sharepoint数据库里面有doc表这个是记录sharepoint里面存的所有文件,docversions这个表里面是你sharepoint里面文件的其他版本(如果我分析的没错的话哈....),现在我想通过程序取出来履历里面那些版本的文件,不知道能不能取出来

其实我的目标是这样的
我需要把另外一个系统的文件管理功能迁移到sharepoint上来,这样的话就有一个问题,原系统里记录的文件履历也需要迁过来,如果单纯的迁文件的话好说,但是履历要迁移过来的话肯定是需要知道目标数据库的对履历是怎么管理的,不知道有没有人对这个作业有什么看法,或者建议

------解决方案--------------------
读取当前版本的内容使用SPFile对象的OpenBinaryStream或OpenBinary;
获取SPFile对象用SPWeb对象的GetFile即可;

读取version的话需要使用SPFileVersion对象的OpenBinary方法,获取SPFileVersion对象直接遍历SPFile对象的Versions属性即可。

具体代码类似于:

using(SPSite site = new SPSite("url"))
{
   using(SPWeb web = site.OpenWeb())
   {
       SPFile file = web.GetFile("url/guid");
       Stream s = file.OpenBinaryStream();
       foreach(SPFileVersion ver in file.Versions)
       {
          byte[] content = ver.OpenBinary();
       }
   }
}
------解决方案--------------------
引用:
读取当前版本的内容使用SPFile对象的OpenBinaryStream或OpenBinary;
获取SPFile对象用SPWeb对象的GetFile即可;

读取version的话需要使用SPFileVersion对象的OpenBinary方法,获取SPFileVersion对象直接遍历SPFile对象的Versions属性即可。

具体代码类似于:

using(SPSite ……
\
楼上 高手, 您能把代码写的更详细点吗?
如Stream s = file.OpenBinaryStream();
 如何 把二进制的流文件,显示到页面上  如果 谁能告诉我,将不胜感谢!! 我想要这个
  相关解决方案