0

ドキュメントライブラリには何千ものファイルがあるので、コードを介してSharePointドキュメントライブラリからファイルをダウンロードしたいと思います。

SharePointサーバーで実行してファイルをダウンロードするコンソールアプリケーションを作成することを考えています。このアプローチは正しいですか、それとも、これを行うための他の効率的な方法があります。

コードに関するヘルプは大歓迎です。

4

2 に答える 2

0

SigarDaveが言ったように、コードを1行も記述せずにこれを実現することは完全に可能です。しかし、本当にこのソリューションをコーディングしたい場合は、次のようになります。

static void Main(string[] args)
{
  // Change to the URL of your site
  using (var site = new SPSite("http://MySite")) 
  using (var web = site.OpenWeb())
  {
    var list = web.Lists["MyDocumentLibrary"]; // Get the library
    foreach (SPListItem item in list.Items)
    {
      if (item.File != null)
      {
        // Concat strings to get the absolute URL
        // to pass to an WebClient object.
        var fileUrl = string.Format("{0}/{1}", site.Url, item.File.Url);            
        var result = DownloadFile(fileUrl, "C:\\FilesFromMyLibrary\\", item.File.Name);
        Console.WriteLine(result ? "Downloaded \"{0}\"" : "Error on \"{0}\"", item.File.Name);
      }
    }
  }
  Console.ReadKey();
}

private static bool DownloadFile(string url, string dest, string fileName)
{
  var client = new WebClient();

  // Change the credentials to the user that has the necessary permissions on the 
  // library
  client.Credentials = new NetworkCredential("Username", "Password", "Domain"); 
  var bytes = client.DownloadData(url);

  try
  {
    using (var file = File.Create(dest + fileName))
    {
      file.Write(bytes, 0, bytes.Length); // Write file to disk
      return true;
    }
  }
  catch (Exception)
  {
    return false;
  }
}
于 2013-01-23T14:37:19.823 に答える
0

スクリプトを使用しない別の方法は、IEを使用してドキュメントライブラリを開き、リボンで[ファイルエクスプローラーで開く]をクリックして、デスクトップにファイルをドラッグアンドドロップすることです。

于 2016-10-25T13:41:49.350 に答える