首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从sharepoint文档库获取所有文档

从sharepoint文档库获取所有文档
EN

Stack Overflow用户
提问于 2012-10-13 19:49:34
回答 2查看 14.8K关注 0票数 1

我想从一个SPDocumentLibrary中检索所有文档我尝试过这种方法,但是我遇到了麻烦

代码语言:javascript
复制
using (SPSite mysite = SPContext.Current.Site)
{
    using (SPWeb myweb = mysite.OpenWeb())
    {
        SPDocumentLibrary myDocLib = (SPDocumentLibrary)myweb.Lists["DocLibrary"];
        SPList myList = SPContext.Current.List;
        SPFileCollection myFiles = myList.;
        foreach (SPListItem myItem in myList.Items)
        {
            //adding each found file to my SPFileCollection
            myFiles.Add(myItem.File);
        }
    }
}

但是SPFileCollection.Add函数接受的不仅仅是文件参数!

EN

回答 2

Stack Overflow用户

发布于 2012-10-15 23:42:19

如果我必须猜测:您实际上并不想将它们添加到SPFileCollection中。这样做意味着您正在复制文件,但没有使用方便的复制方法。

您可能只想将它们临时存储在List<SPFile>或类似的文件中。

SharePoint对象库中有许多称为集合的类,但它们不像Systems.Collections命名空间中的类那样使用。

票数 1
EN

Stack Overflow用户

发布于 2016-04-20 15:50:34

再一次

link here

代码语言:javascript
复制
 public static bool getAllDocuments()
 {
     Console.WriteLine("getAllDocuments debug, START");
     bool isOK = false;
     string baseUrl = "http://jabdw3421:82/sites/TestSite/";
     try
     {
         SPSecurity.RunWithElevatedPrivileges(delegate()
         {
             using (SPSite site = new SPSite(baseUrl))
             {
                 using (SPWeb web = site.OpenWeb())
                 {
                     SPDocumentLibrary lib = (SPDocumentLibrary)web.Lists["TestLib"];
                     IEnumerable<SPFile> allFiles = ExploreFolder(lib.RootFolder);

                     foreach (SPFile file in allFiles)
                     {
                         Console.WriteLine("getAllDocuments debug, File Name : " + file.Name);
                         Console.WriteLine("getAllDocuments debug, File CharSetName : " + file.CharSetName);
                         Console.WriteLine("getAllDocuments debug, File SourceLeafName : " + file.SourceLeafName);
                     }
                 }
             }
         });
     }
     catch (Exception e)
     {
         Console.WriteLine("getAllDocuments debug, " + e.Message);
         isOK = false;
     }
     Console.WriteLine("getAllDocuments debug, END");
     return isOK;
 }

 private static IEnumerable<SPFile> ExploreFolder(SPFolder folder)
 {
     foreach (SPFile file in folder.Files)
     {
         yield return file;
     }
     foreach (SPFolder subFolder in folder.SubFolders)
     {
         foreach (SPFile file in ExploreFolder(subFolder))
         {
             yield return file;
         }
     }
 }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12872825

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档