为了账号安全,请及时绑定邮箱和手机立即绑定

使用C#将excel文件从sharepoint站点下载到本地系统

使用C#将excel文件从sharepoint站点下载到本地系统

C#
慕慕森 2021-11-28 16:40:24
我需要从 sharepoint 下载一个 excel 文件到我的本地系统。我写了下面的方法。    internal static void DownloadFilesFromSharePoint(string siteUrl, string folderPath, string tempLocation)    {        ClientContext ctx = new ClientContext(siteUrl);        ctx.Credentials = new NetworkCredential("username", "password");        FileCollection files = ctx.Web.GetFolderByServerRelativeUrl(folderPath).Files;        ctx.Load(files);        ctx.ExecuteQuery();----FAILED HERE        foreach (File file in files)        {            FileInformation fileInfo = File.OpenBinaryDirect(ctx, file.ServerRelativeUrl);            ctx.ExecuteQuery();            var filePath = tempLocation + file.Name;            using (var fileStream = new System.IO.FileStream(filePath, System.IO.FileMode.Create))            {                fileInfo.Stream.CopyTo(fileStream);            }        }    }要调用上述方法,我在 Main 方法中有以下内容:    public static void Main()    {    Program.DownloadFilesFromSharePoint("http://sp.frk.com/teams/ResearchSystemsSupport/GT%20Resources/Forms/AllItems.aspx", "/TeamDocuments", @"c:\");    }但是上面的代码不起作用。我在调试时标记了代码给出异常的点(通过标记----FAILED HERE)。任何人都可以在这里指出问题。任何人都可以帮助我。如果可以,请给我一个详细的解释。
查看完整描述

2 回答

?
守着星空守着你

TA贡献1799条经验 获得超8个赞

替换下面的代码

Program.DownloadFilesFromSharePoint("http://sp.frk.com/teams/ResearchSystemsSupport/GT%20Resources/Forms/AllItems.aspx", "/TeamDocuments", @"c:\");

Program.DownloadFilesFromSharePoint("http://sp.frk.com/teams/ResearchSystemsSupport", "GT%20Resources/TeamDocuments", @"c:\");

站点 URL 和文件夹路径不正确。


查看完整回答
反对 回复 2021-11-28
?
繁星coding

TA贡献1797条经验 获得超4个赞

我终于想出了下面粘贴的有效代码。正如 LZ_MSFT 在评论中指出的那样,我重新检查了我正在传递的共享点链接,但他们错了,所以更改了它并且它起作用了。同样在网络凭据中,添加了域。


    static void DownloadFilesFromSharePoint(string siteUrl, string siteFolderPath, string localTempLocation)

    {

        ClientContext ctx = new ClientContext(siteUrl);

        ctx.Credentials = new NetworkCredential("username", "password", "Domain");


        FileCollection files = ctx.Web.GetFolderByServerRelativeUrl(siteFolderPath).Files;


        ctx.Load(files);

        if (ctx.HasPendingRequest)

        {

            ctx.ExecuteQuery();

        }


        foreach (File file in files)

        {                

                FileInformation fileInfo = File.OpenBinaryDirect(ctx, file.ServerRelativeUrl);

                ctx.ExecuteQuery();


                var filePath = localTempLocation + "\\" + file.Name;

                System.IO.FileStream fileStream = new System.IO.FileStream(filePath, System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.ReadWrite, System.IO.FileShare.ReadWrite);


                fileInfo.Stream.CopyTo(fileStream);


        }

    } 

调用函数:


    static void Main(string[] args)

    {

        Program.DownloadFilesFromSharePoint(@"http://sp.frk.com/teams/ResearchSystemsSupport", @"http://sp.frk.com/teams/ResearchSystemsSupport/Global%20Equity%20Group/Daily_Checks", @"C:\Temp");       

    }


查看完整回答
反对 回复 2021-11-28
  • 2 回答
  • 0 关注
  • 826 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信