You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用C#连接SharePoint Syntex文档库并读取其中文件?

使用C#连接SharePoint Syntex文档库并读取文件

一、准备工作

  • 确保项目中引用Microsoft.SharePoint.Client和Microsoft.SharePoint.Client.Runtime NuGet包
  • 准备好SharePoint站点URL、目标文档库名称、有权限的账号及密码

二、完整实现代码

以下是包含连接验证、文件列表获取及内容读取的完整代码:

using System;
using System.Security;
using Microsoft.SharePoint.Client;

class SharePointSyntexFileReader
{
    private static void ConnectAndReadLibraryFiles()
    {
        try
        {
            Console.WriteLine("尝试连接SharePoint站点...");
            // 替换为你的SharePoint站点根URL
            const string siteUrl = "https://yourtenant.sharepoint.com/sites/yourTargetSite";
            // 替换为你的文档库名称
            const string libraryName = "YourSyntexLibrary";
            const string username = "your-account@yourtenant.onmicrosoft.com";
            const string pwd = "your-password";

            // 将普通密码转换为SecureString
            SecureString securePassword = new SecureString();
            foreach (char c in pwd.ToCharArray())
            {
                securePassword.AppendChar(c);
            }

            // 初始化连接上下文
            using (ClientContext context = new ClientContext(siteUrl))
            {
                context.Credentials = new SharePointOnlineCredentials(username, securePassword);

                // 获取目标文档库
                List targetLibrary = context.Web.Lists.GetByTitle(libraryName);
                context.Load(targetLibrary);
                context.ExecuteQuery();

                Console.WriteLine($"成功连接到文档库: {targetLibrary.Title}");

                // 查询文档库内所有文件
                CamlQuery query = CamlQuery.CreateAllItemsQuery();
                ListItemCollection fileItems = targetLibrary.GetItems(query);
                context.Load(fileItems, items => items.Include(
                    item => item.File.Name,
                    item => item.File.ServerRelativeUrl,
                    item => item.File.Length));
                context.ExecuteQuery();

                // 遍历并读取文件
                Console.WriteLine("\n文档库文件列表及内容读取结果:");
                foreach (ListItem item in fileItems)
                {
                    if (item.File != null)
                    {
                        Console.WriteLine($"文件名: {item.File.Name}, 大小: {item.File.Length}字节");

                        // 读取文件内容为字节数组
                        FileInformation fileInfo = File.OpenBinaryDirect(context, item.File.ServerRelativeUrl);
                        using (var memoryStream = new System.IO.MemoryStream())
                        {
                            fileInfo.Stream.CopyTo(memoryStream);
                            byte[] fileContent = memoryStream.ToArray();
                            Console.WriteLine($"已读取文件 {item.File.Name} 内容,内容长度: {fileContent.Length}字节");
                        }
                    }
                }
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine($"操作出错: {ex.Message}");
        }
    }

    static void Main(string[] args)
    {
        ConnectAndReadLibraryFiles();
        Console.ReadLine();
    }
}

三、核心要点说明

  • ClientContext:SharePoint CSOM的核心连接对象,负责与站点建立通信
  • SharePointOnlineCredentials:用于Office 365账号验证,密码必须转换为SecureString类型保证安全性
  • 文件读取逻辑:通过File.OpenBinaryDirect获取文件流,可根据需求转换为字节数组、文本等格式
  • 权限要求:使用的账号必须拥有目标文档库的读取权限,否则会触发权限异常

内容的提问来源于stack exchange,提问作者prerit pushp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 20:40:35