使用CSOM打开并读取位于SharePoint文档库中的文本文件
本文关键字:文档 文件 文本 SharePoint CSOM 读取 使用 | 更新日期: 2023-09-27 18:22:28
我可以在SharePoint中获取文件的相对路径。我现在需要打开文件并阅读其中的内容。这就是我被卡住的地方。我不知道如何打开一个文件进行读取,除非它是我硬盘的本地文件,而它不是。这是我的代码:
If item.FieldValues("File_x0020_Type") = "html" Then
Dim the_file As SP.File = oWebsite.GetFileByServerRelativeUrl(item.FieldValues("FileRef"))
Dim reader As StreamReader = New StreamReader(the_file)
Dim sr As StreamReader = StreamReader(the_file)
textbox1.text = sr.ReadToEnd()
reader.Close()
End If
抱歉误解了。
ClientContext clientContext = new ClientContext("http://SpSiteUrl");
clientContext.ExecuteQuery();
FileInformation fileInfo = Microsoft.SharePoint.Client.File.OpenBinaryDirect(clientContext, "thisFile");
System.IO.Stream stream = fileInfo.Stream;
using (StreamReader r = new StreamReader(stream))
string line;
while((line = file.ReadLine()) != null)
{
System.Console.WriteLine (line);
}
}
一旦它被设置为Stream,您应该能够正常地循环它。
我也看到了第二种方法。
using (var clientContext = new ClientContext(url)) {
Microsoft.SharePoint.Client.File.OpenBinaryDirect(clientContext, "thisFile");
using (var fileStream = System.IO.File.Create(getItem))
{
fileInfo.Stream.CopyTo(fileStream);
}
}
然后,您也可以正常地循环通过fileStream。
这里还有第二种循环方式——
using (StreamReader sr = new StreamReader(stream))
{
while (sr.Peek() >= 0)
{
Console.WriteLine(sr.ReadLine());
}
}
事实上,现在我又读了一次你的问题,你也许可以做到这一点。
Dim reader As StreamReader = New StreamReader(stream)
textbox1.text = reader.ReadToEnd()
reader.Close()