从 SSIS 中的 SharePoint 文件夹下载文件

Download files from a SharePoint folder in SSIS

我正在尝试从 SharePoint 站点下载多个文件。

我使用脚本任务处理一个我知道文件名的文件

WebClient client = new WebClient();
client.Credentials = GetCredentials();// Separate Method
client.DownloadFile(spFolderURL + "Filename.xlsx", spLocalFolder + "Filename.xlsx")

但我需要能够遍历文件夹中的所有文件并动态获取文件名。

我正在尝试这个 code project 解决方案和下面的解决方案,我只需要下载一种文件类型 (.xlsx)。

using (SPSite oSite = new SPSite(spFolderURL))
{
  using (SPWeb oWeb = oSite.OpenWeb())
  {
    SPList list = oWeb.Lists["listname"];

    WebClient client = new WebClient();

    SPListItemCollection oItemCol = list.GetItems();
    foreach (SPListItem oItem in oItemCol)
    {
        string strID = Convert.ToString(oItem["ID"]);
        SPFolder folder = oWeb.Folders["Lists"].SubFolders["Tasks"].SubFolders["Attachments"].SubFolders[strID];
        foreach (SPFile file in folder.Files)
        {
            client.Credentials = GetCredentials();// Separate Method
            client.DownloadFile(spFolderURL + "Filename.xlsx", spLocalFolder + "Filename.xlsx")
        }

    }
  }
}

但我似乎无法识别 SPSite 和其他 SharePoint 项目。

我在脚本中添加了对 Microsoft.SharePoint.Client 的引用,但看起来这些项目需要 Microsoft.SharePoint,我在可用程序集列表中找不到它。

我正在使用 Visual Studio 2013

***编辑

已完成进一步研究,我需要下载 SharePoint list adapters 我现在可以访问 SharePoint 列表以提取所需的文件名。

SPSite(对象名称以SP开头)是服务器端对象模型,只能用于农场解决方案或SharePoint服务器,您可以使用CSOM(名称包含client.xx.dll的库)下载文件。

sample here

或者http请求sample

经过进一步研究,我发现我需要下载 SharePoint list adapters 我现在能够访问 SharePoint 列表以提取所需的文件名。