猿问

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

我需要从 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)。任何人都可以在这里指出问题。任何人都可以帮助我。如果可以,请给我一个详细的解释。


慕慕森
浏览 827回答 2
2回答

守着星空守着你

替换下面的代码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 和文件夹路径不正确。

繁星coding

我终于想出了下面粘贴的有效代码。正如 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");           }
随时随地看视频慕课网APP
我要回答