我有一个拥有excel电子表格的sharepoint网站,我需要按计划下载
这可能吗?
答案 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调度程序运行它。