私はスケジューラベースでダウンロードする必要のあるExcelスプレッドシートを持っているSharepointサイトを持っています私はどのようにプログラムをSharePointサイトからファイルをダウンロードするのですか?
これは可能ですか?
私はスケジューラベースでダウンロードする必要のあるExcelスプレッドシートを持っているSharepointサイトを持っています私はどのようにプログラムをSharePointサイトからファイルをダウンロードするのですか?
これは可能ですか?
wget.exe <url>
を使用しないのはなぜですか。その行をバッチファイルに入れて、Windowsスケジューラを通して実行することができます。
Sharepointのドキュメントへのリンクは静的URLである必要があります。あなたのスケジュールでファイルを取得する必要があるソリューションであれば、そのURLを使用してください。
また、これを行うことができます。
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);
}
はい、SharePointからファイルをダウンロードすることが可能です。 ドキュメントのURLを取得したら、HttpWebRequestとHttpWebResponseを使用してダウンロードできます。
あなたはまた、ファイルをダウンロードするにはコピーサービスのGetItem関数のAPIを使用することができますサンプルコード
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();
}
を取り付けます。
string aFileUrl = mySiteUrl + strFileName;
Copy aCopyService = new Copy();
aCopyService.UseDefaultCredentials = true;
byte[] aFileContents = null;
FieldInformation[] aFieldInfo;
aCopyService.GetItem(aFileUrl, out aFieldInfo, out aFileContents);
ファイルはバイト配列として取得できます。
これを行うソフトウェアはありますか? –
上記のようにwgetがこれを行います。 – mccrager