如何以编程方式总结 Sharepoint 中的现有文档

How to programatically summarize existing documents in Sharepoint

每个人。

我不确定这是否可行,但这对我有很大帮助。

场景如下:我们在 Sharepoint 中创建了一个 "teamplace",我们在不同的文件夹中有很多技术文档。问题是我们失去了对它的控制,现在我们需要创建现有文件的摘要。所以,希望我们不需要进入每个文件夹和子文件夹并记下每个文件名,我想知道是否可以在 C# 中以编程方式执行此操作。

简而言之,有没有一种方法可以通过 C# 应用程序连接到 Sharepoint(我可以使用我的网络帐户,它已被授予访问权限),然后检索现有文件的列表,或者至少获取他们的路径?如果有,是不是太复杂了?

提前致谢。

过去,当我想通过 C# 与 Sharepoint 交互时,我使用了 Microsoft 提供的 Web 服务。 列表 Web 服务可用 @ http://domain/sites/yourrepository/_vti_bin/lists.asmx

这个话题已经讨论过了,你可以用powershell来做。

在这里您可以找到所需的信息: List of documents in Entire Sharepoint Site

感谢 Isaac an ProjectedJetpacks 的回答,不过我可以用另一种方式解决。我使用了 Microsoft.Sharepoint.Client.dll 程序集(您需要安装 Sharepoint Client SDK)并浏览了网站内的所有列表。然后,在每个文件夹中,我搜索文件夹(并使用递归方法直到文件夹树的最后一片叶子)和每个文件夹中的文件。最后,将我需要的所有文件信息放入一个 CSV 文件中。部分作品示例如下:

ClientContext context = new ClientContext("<websiteurl>");
Web web = context.Web;
context.Load(web);
context.ExecuteQuery();
var q = from list in web.Lists
                where <put condition here>
                select list;
var r = context.LoadQuery(q);
context.ExecuteQuery();

foreach (var list in r)
{
   context.Load(list.RootFolder);
   context.ExecuteQuery();
   ...
   //To get folders
   GetFolders(context, list.Root.Folders);
   //To get files
   GetFiles(context, list.RootFolder.Files);
 }

重要的是记住将每个卸载的对象放入 "context.Load()" 并在调用后立即 "context.ExecuteQuery()"。

我希望这对其他人有所帮助。

此致。