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

时间:2018-02-19 18:46:12

标签: sharepoint visual-studio-2013 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

*** EDIT

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

sample here

或http请求sample