如何以编程方式从sharepoint站点下载文件?

时间:2009-04-07 14:44:09

标签: c# file download

我有一个拥有excel电子表格的sharepoint网站,我需要按计划下载

这可能吗?

4 个答案:

答案 0 :(得分:6)

是的,可以从sharepoint下载文件。 获得文档的URL后,可以使用HttpWebRequest和HttpWebResponse下载它。

附加示例代码

    DownLoadDocument(string strURL, string strFileName)
    {
        HttpWebRequest request;
        HttpWebResponse response = null;

            request = (HttpWebRequest)WebRequest.Create(strURL);
            request.Credentials = System.Net.CredentialCache.DefaultCredentials;
            request.Timeout = 10000;
            request.AllowWriteStreamBuffering = false;
            response = (HttpWebResponse)request.GetResponse();
            Stream s = response.GetResponseStream();

            // Write to disk
            if (!Directory.Exists(myDownLoads))
            {
                Directory.CreateDirectory(myDownLoads);
            }
            string aFilePath = myDownLoads + "\\" + strFileName;
            FileStream fs = new FileStream(aFilePath, FileMode.Create);
            byte[] read = new byte[256];
            int count = s.Read(read, 0, read.Length);
            while (count > 0)
            {
                fs.Write(read, 0, count);
                count = s.Read(read, 0, read.Length);
            }

            // Close everything
            fs.Close();
            s.Close();
            response.Close();

    }

您还可以使用Copy服务的GetItem API下载文件。

        string aFileUrl = mySiteUrl + strFileName;
        Copy aCopyService = new Copy();
        aCopyService.UseDefaultCredentials = true;
        byte[] aFileContents = null;
        FieldInformation[] aFieldInfo;
        aCopyService.GetItem(aFileUrl, out aFieldInfo, out aFileContents);

可以将文件检索为字节数组。

答案 1 :(得分:2)

你也可以这样做:

try
        {   
            using (WebClient client = new WebClient())
            {
                client.Credentials = new NetworkCredential("username", "password", "DOMAIN");
                client.DownloadFile(http_path, path);                    
            }
        }
        catch (Exception ex)
        {
            MessageBox.Show("Error: " + ex.Message);
        }

答案 2 :(得分:0)

Sharepoint中的文档链接应该是静态URL。在您拥有的任何解决方案中使用该URL来按计划获取文件。

答案 3 :(得分:-1)

为什么不使用wget.exe <url>。您可以将该行放在批处理文件中,然后通过Windows调度程序运行它。