带 camlQuery 的 Sharepoint 2010 客户端对象模型 - 文件下载但无内容/0 字节

2023-11-29

我正在尝试从文档库中的文件夹内的子文件夹下载 txt 文件。

我正在使用 camlQuery 来实现此目的。不幸的是,我没有得到txt文件的内容。它有 0 字节。

public void SaveFolderFiles(string fileName, string libraryName, ClientOM.ClientContext clientContext)
    {
        ClientOM.List sharedDocumentsList = clientContext.Web.Lists.GetByTitle(libraryName);
        ClientOM.CamlQuery camlQuery = new ClientOM.CamlQuery();
        camlQuery.FolderServerRelativeUrl = "/Site/Folder/Folder2010/";
        camlQuery.ViewXml =
            @"<View>
            <Query>
              <Where>
                <Eq>
                  <FieldRef Name='FileLeafRef'/>
                  <Value Type='Text'>" + fileName + @"</Value>
                </Eq>
              </Where>
              <RowLimit>1</RowLimit>
            </Query>
          </View>";
        ClientOM.ListItemCollection listItems = sharedDocumentsList.GetItems(camlQuery);
        clientContext.Load(sharedDocumentsList);
        clientContext.Load(listItems);
        clientContext.ExecuteQuery();
        if (listItems.Count == 1)
        {
            ClientOM.ListItem item = listItems[0];
            Console.WriteLine("FileLeafRef: {0}", item["FileLeafRef"]);
            Console.WriteLine("FileDirRef: {0}", item["FileDirRef"]);
            Console.WriteLine("FileRef: {0}", item["FileRef"]);
            Console.WriteLine("File Type: {0}", item["File_x0020_Type"]);
            ClientOM.FileInformation fileInformation = ClientOM.File.OpenBinaryDirect(clientContext, (string)item["FileRef"]);
            using (MemoryStream memoryStream = new MemoryStream())
            {
                fileInformation.Stream.CopyTo(memoryStream);
                using (FileStream fileStream = File.Create(@"D:\" + item["FileLeafRef"].ToString()))
                {
                    memoryStream.CopyTo(fileStream);
                }
                memoryStream.Flush();
            }


        }
        else
        {
            Console.WriteLine("Document not found.");
        }
    }

也许有人有想法?

Regards


尝试这个:

using FileInformation并获取MemoryStream

string fileurl = (string)liitem["FileRef"];
FileInformation ffl = Microsoft.SharePoint.Client.File.OpenBinaryDirect(clientContext, fileurl);
byte[] bytesarr = ReadFully(ffl.Stream);
MemoryStream mnm = new MemoryStream(bytesarr);

ReadFully 函数转换Stream to Bytes array

 public byte[] ReadFully(Stream input)
    {
        byte[] buffer = new byte[16 * 1024];
        using (MemoryStream ms = new MemoryStream())
        {
            int read;
            while ((read = input.Read(buffer, 0, buffer.Length)) > 0)
            {
                ms.Write(buffer, 0, read);
            }
            return ms.ToArray();
        }
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

带 camlQuery 的 Sharepoint 2010 客户端对象模型 - 文件下载但无内容/0 字节 的相关文章

随机推荐

  • 如何从 mySQL 和 PHP 检索结果作为多维数组?

    我刚刚开始学习更高级的 SQL 和 PHP 并且我真的很努力地尝试找出如何查询我的数据库以进行我正在构建的测验 最终 我尝试返回一个具有以下结构的 json 对象 该对象以多维数组的形式提供了问题列表和所有可能的答案 questions q
  • 如何使用c++获取Windows中的系统信息[关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我想用 C 代码获取我的系统硬件信息 那么如何用c 获取windows中的系统信息呢 您可以使用GetSystemInfo函数获取硬件信息 例如 OEM 标识符 处理器类型 页面
  • 我可以获得从 Scala 中的密封父级派生的所有 case 对象的编译时列表吗?

    正如在 SO 上多次讨论的那样 如果您没有详尽地列出从密封类派生的所有类型 Scala 匹配将会警告您 我想要的是从特定父级派生的案例对象的编译时生成的 Iterable 或者 我很高兴有一种方法可以让编译器告诉我我在某些 Iterable
  • 雷达图上的误差线?

    我正在寻找多变量数据的雷达图 这项任务对于 Excel 来说足够简单 当我还想在此绘制一些误差线时 问题就出现了 据我了解 我无法在Excel中做到这一点 这在 R 上可能吗 或者有人可以建议替代方案吗 我有 32 个单值维度 Thanks
  • 更新 mdb 数据库表

    我正在使用 NET Web Forms 和 mdb数据库作为数据源 问题是 我有一个工作后台 通过它我可以创建 修改和删除新页面 虽然我可以创建和删除 但编辑功能不起作用 我意识到问题可能出在查询中 因为代码对于其他功能运行良好 这是查询
  • C# 异步方法调用一直到 Main

    有人可以澄清这个例子 这当然是行不通的 class Program static void Main string args main cant be async int res test I must put await here Con
  • WPF DataGrid 列:如何管理值更改事件

    在我的 WPF C 项目中 我有一个 Datagrid 如下所示
  • MFMailComposeViewController 外观 setTintColor 迷失 iOS 7

    这个问题是针对运行 iOS 7 的 Xcode 5 的 非常奇怪 我试图将所有 UInavigation 和 UIBarButtonItem 文本颜色设置为白色 因此 在我的应用程序启动委托中 我将代码设置为 BOOL applicatio
  • Any 中的 Swift 转换失败?协议

    仅供参考 这里提出了 Swift 错误 https bugs swift org browse SR 3871 我遇到一个奇怪的问题 强制转换不起作用 但控制台将其显示为正确的类型 我有一个公共协议 public protocol MyPr
  • symfony make:新项目实体崩溃

    每当我尝试使用 bin console make entity 创建实体时 我都会得到以下结果 php bin console make entity Class name of the entity to create or update
  • 如何将 YUV 转换为 iOS 的 CIImage

    我正在尝试将 YUV 图像转换为 CIIMage 并最终转换为 UIImage 我在这些方面相当新手 并试图找出一种简单的方法来做到这一点 据我所知 从 iOS6 开始 YUV 可以直接用于创建 CIImage 但当我尝试创建它时 CIIm
  • 转义角括号的作用类似于前视

    为什么转义转义尖括号 gt 表现出类似前瞻的行为 需要明确的是 我知道尖括号不需要转义 问题是 如何解释该模式以产生所示的匹配项 match bracket with or without underscore replace with g
  • 如何使用 Mysql JDBC 驱动程序连接 Android 和 MySQL [重复]

    这个问题在这里已经有答案了 我想从 MySQL 中的表中获取数据并将其显示在 TextView 中 但是当我尝试连接数据库时遇到一些问题 我正在使用 Android 版 Eclipse 当我尝试从 Java 项目中的 MySQL 获取数据时
  • 我怎样才能制作如图所示的模态 - 不和谐

    我想在按下按钮时创建一个如图所示的模式 如何使用 Discord py 或 nextcord 制作此模型 您可以在此处找到 Nextcord 中的模态示例 https github com nextcord nextcord blob ma
  • 无窗口 .NET 应用程序中的全局热键

    我读过有关此问题的类似问题 包括在 C 中解决全局热键处理的最佳方法 and 使用C 设置全局热键 我还研究了 NuGet 包全局热键这似乎还处于起步阶段 这里的问题是 它们中的大多数似乎是为 Winforms 设计的 或者可能在 WPF
  • 调整窗口大小时 Java Swing 绘图消失

    我非常需要你的帮助 因为我自己无法解决这个问题 我正在尝试创建一个 GUI 并想在按下按钮后在其中绘制一些内容 但我似乎遇到某种刷新 重新验证或线程问题 绘图已绘制 但是当我调整窗口大小时 绘图消失了 此外 当快速移动窗口时 部分绘图会消失
  • 创建带有索引错误的 if 语句 - Python

    我正在尝试创建一个类似于贪吃蛇的游戏 不同之处在于 通过使用 randint 获得食物配给 然后玩家可以选择蛇的生长方向 起始位置也是随机选择的 游戏场是用矩阵构建的 因此可以通过选择使列表超出范围的增长方向来 增长到墙壁 我的问题是 如果
  • 箭头函数和括号 () 或 {} 或 ({}) 的使用

    我不明白为什么在箭头函数中我们不需要将箭头函数的文字包装在 大括号 而不是在本例中 文字只是包裹在单个大括号中 大括号 为什么 我曾在网上寻找答案 但失败了 以及为什么我们将参数放在双括号中 而不仅仅是 const FilterLink f
  • 如何使用 pandas 清理和转发填充多天 1 分钟时间序列?

    我有一个 csv 文件 其中包含多天的 1 分钟股票数据 每天的运行时间为 9 30 至 16 00 时间序列中的一些分钟缺失 此处缺少 2013 09 16 09 32 00 和 2013 09 17 09 31 00 2013 09 1
  • 带 camlQuery 的 Sharepoint 2010 客户端对象模型 - 文件下载但无内容/0 字节

    我正在尝试从文档库中的文件夹内的子文件夹下载 txt 文件 我正在使用 camlQuery 来实现此目的 不幸的是 我没有得到txt文件的内容 它有 0 字节 public void SaveFolderFiles string fileN