我正在尝试从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列表以提取所需的文件名。
答案 0 :(得分:1)
经过进一步研究,我发现我需要下载SharePoint list adapters我现在能够访问SharePoint列表以提取所需的文件名。
答案 1 :(得分:0)
SPSite(对象名称以SP开头)是服务器端对象模型,只能在服务器场解决方案或SharePoint服务器中使用,您可以使用CSOM(名称包含client.xx.dll的库)下载文件。
或http请求sample