gpt4 book ai didi

c# - SharePoint - 将文件夹下载为 zip 文件

转载 作者:太空宇宙 更新时间:2023-11-03 22:44:00 24 4
gpt4 key购买 nike

我需要一个 API (C#) 来将文件夹下载为 SharePoint 中的一个 zip 文件。选择一个或几个文件夹后,SharePoint 网站会启用此功能,但我找不到如何以编程方式执行此操作。我在类 Microsoft.SharePoint.Client.Folder 中没有看到任何内容。也许以某种方式使用 Microsoft.SharePoint.Client.DocumentSet。找不到答案。我可以使用 File.OpenBinaryDirect 按文件执行此文件,但可能已经存在现成的功能。谢谢。

最佳答案

示例代码供您引用。

static void Main(string[] args)
{
string _SiteUrl = "https://domain.sharepoint.com/sites/tst";
using (var clientContext = new ClientContext(_SiteUrl))
{
Console.ForegroundColor = ConsoleColor.Green;
string password = "pw";
SecureString sec_pass = new SecureString();
Array.ForEach(password.ToArray(), sec_pass.AppendChar);
sec_pass.MakeReadOnly();
clientContext.Credentials = new SharePointOnlineCredentials("lee@domain.onmicrosoft.com", sec_pass);

Web web = clientContext.Web;
Folder folder = web.GetFolderByServerRelativeUrl("/sites/TST/MyDoc4/Folder");
var files = folder.Files;
clientContext.Load(files);
clientContext.ExecuteQuery();
Console.WriteLine();
//Regex regex = new Regex(_SiteUrl, RegexOptions.IgnoreCase);

var list = web.Lists.GetByTitle("MyDoc4");
var libRootFolder = list.RootFolder;
var subFolder = libRootFolder.Folders.GetByUrl("Folder");
clientContext.Load(libRootFolder);
clientContext.Load(subFolder);
clientContext.ExecuteQuery();
Console.WriteLine(libRootFolder.ItemCount);
Console.WriteLine(subFolder.ItemCount);


using (System.IO.MemoryStream mStream = new System.IO.MemoryStream())
{
using (var archive = new ZipArchive(mStream, ZipArchiveMode.Create, true))
{
foreach (var file in files)
{
clientContext.Load(file);
Console.WriteLine(file.Name);
ClientResult<Stream> stream = file.OpenBinaryStream();
clientContext.ExecuteQuery();

var zipArchiveEntry = archive.CreateEntry(file.Name);
using (Stream zipEntryStream = zipArchiveEntry.Open())
{

if (stream != null)
{
stream.Value.CopyTo(zipEntryStream);
}

}
}
}
using (var fileStream = new FileStream(@"C:\Lee\FileDownload\test.zip", FileMode.Create))
{
mStream.Seek(0, SeekOrigin.Begin);
mStream.CopyTo(fileStream);
}
}


Console.WriteLine("done");
Console.ReadKey();
}

}

关于c# - SharePoint - 将文件夹下载为 zip 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50846826/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com