C# 如何使用Microsoft.Sharepoint.Client.dll读取由文件集合列修改的审阅状态、注释
如何使用Microsoft.Sharepoint.Client.dll读取文件的所有列 实际上,我的文档驻留在子文件夹中,因此我使用ExecuteQuery(),一旦到达指定的文档文件夹,然后将所有文件加载到该文件夹的文件集合中,然后尝试读取网页的列以及excel文件名 在上图中,您可以找到黄色高亮列。我想从c#中读取这些列。 下面是我写的代码:-C# 如何使用Microsoft.Sharepoint.Client.dll读取由文件集合列修改的审阅状态、注释,c#,asp.net,sharepoint,C#,Asp.net,Sharepoint,如何使用Microsoft.Sharepoint.Client.dll读取文件的所有列 实际上,我的文档驻留在子文件夹中,因此我使用ExecuteQuery(),一旦到达指定的文档文件夹,然后将所有文件加载到该文件夹的文件集合中,然后尝试读取网页的列以及excel文件名 在上图中,您可以找到黄色高亮列。我想从c#中读取这些列。 下面是我写的代码:- string siteUrl = @"http://localhost"; ClientContext c
string siteUrl = @"http://localhost";
ClientContext clientContext = new ClientContext(siteUrl);
clientContext.Credentials = new NetworkCredential("*****", "*****", "*****");
Web site = clientContext.Web;
FolderCollection SearchFolder = site.Folders;
clientContext.Load(SearchFolder);
clientContext.ExecuteQuery();
//Iterating each folder inside the website
foreach (Folder searchFolder in SearchFolder)
{
if (searchFolder.Name == "Random Scan Tracking")
{
//Displays and Logs Message
_loggerDetails.LogMessage = "Search Folder : " + searchFolder.Name;
_writeLog.LogDetails(_loggerDetails.LogLevel_Info, _loggerDetails.LogMessage);
Console.WriteLine("Search Folder : " + searchFolder.Name);
FolderCollection RegionFolder=searchFolder.Folders;
clientContext.Load(RegionFolder);
clientContext.ExecuteQuery();
//Iterating each Region Folder inside the Random Scan Folder
foreach (Folder regionFolder in RegionFolder)
{
Console.WriteLine("Region Folder : " + regionFolder.Name);
//Displays and Logs Message
_loggerDetails.LogMessage = "Region Folder : " + regionFolder.Name;
_writeLog.LogDetails(_loggerDetails.LogLevel_Info, _loggerDetails.LogMessage);
FolderCollection StateFOlder=regionFolder.Folders;
clientContext.Load(StateFOlder);
clientContext.ExecuteQuery();
//Iterating each State Folder inside the Region Folder
foreach (Folder stateFolder in StateFOlder)
{
Console.WriteLine("State Folder : " + stateFolder.Name);
//Displays and Logs Message
_loggerDetails.LogMessage = "State Folder : " + stateFolder.Name;
_writeLog.LogDetails(_loggerDetails.LogLevel_Info, _loggerDetails.LogMessage);
FolderCollection CountyFolder=stateFolder.Folders;
clientContext.Load(CountyFolder);
clientContext.ExecuteQuery();
//Iterating each County Folder inside the State Folder
foreach (Folder countyFolder in CountyFolder)
{
Console.WriteLine("County Folder : " + countyFolder.Name);
//Displays and Logs Message
_loggerDetails.LogMessage = "County Folder : " + countyFolder.Name;
_writeLog.LogDetails(_loggerDetails.LogLevel_Info, _loggerDetails.LogMessage);
FolderCollection MonthFolder=countyFolder.Folders;
clientContext.Load(MonthFolder);
clientContext.ExecuteQuery();
//Iterating each Month Folder inside the County Folder
foreach (Folder monthFolder in MonthFolder)
{
Console.WriteLine("Month Folder : " + monthFolder.Name);
//Displays and Logs Message
_loggerDetails.LogMessage = "Month Folder : " + monthFolder.Name;
_writeLog.LogDetails(_loggerDetails.LogLevel_Info, _loggerDetails.LogMessage);
FileCollection flc=monthFolder.Files;
clientContext.Load(flc);
clientContext.ExecuteQuery();
foreach (Microsoft.SharePoint.Client.File file in flc)
{
Console.WriteLine("File Name : " + file.Name);
Console.WriteLine("File Check out By Name : " + file.CheckedOutByUser.ToString());
Console.WriteLine("FileCheck in Comment : " + file.CheckInComment.ToString());
Console.WriteLine("Modified ByComment : " + file.ModifiedBy.ToString());
Console.WriteLine("Modified Date : " + file.TimeLastModified.ToString());
Console.WriteLine("Created Date : " + file.TimeCreated.ToString());
//Displays and Logs Message
_loggerDetails.LogMessage = "File Name : " + file.Name;
_writeLog.LogDetails(_loggerDetails.LogLevel_Info, _loggerDetails.LogMessage);
//Displays and Logs Message
_loggerDetails.LogMessage = "File Check out By Name : " + file.CheckedOutByUser.ToString();
_writeLog.LogDetails(_loggerDetails.LogLevel_Info, _loggerDetails.LogMessage);
//Displays and Logs Message
_loggerDetails.LogMessage = "FileCheck in Comment : " + file.CheckInComment.ToString();
_writeLog.LogDetails(_loggerDetails.LogLevel_Info, _loggerDetails.LogMessage);
//Displays and Logs Message
_loggerDetails.LogMessage = "Modified ByComment : " + file.ModifiedBy.ToString();
_writeLog.LogDetails(_loggerDetails.LogLevel_Info, _loggerDetails.LogMessage);
//Displays and Logs Message
_loggerDetails.LogMessage = "Modified Date : " + file.TimeLastModified.ToString();
_writeLog.LogDetails(_loggerDetails.LogLevel_Info, _loggerDetails.LogMessage);
//Displays and Logs Message
_loggerDetails.LogMessage = "Created Date : " + file.TimeCreated.ToString();
_writeLog.LogDetails(_loggerDetails.LogLevel_Info, _loggerDetails.LogMessage);
}
}
}
}
}
}
}
我可以读取每个文件的文件名、修改人,但我还想读取修改日期、查看状态、注释和签出到列。在您上次的foreach声明中: 添加以下代码:
ListItem item = file.ListItemAllFields;
clientContext.Load(item);
clientContext.ExecuteQuery();
string strModified = item["Modified"].ToString();
strint comments = item["Comments"].ToString();
获取其他类似的字段
希望这对您有用。已经尝试过,但无法阅读“修改人”、“修改人”、“审阅状态”、“评论”列。在问题中也更新了我的代码。我能够获得excel的详细信息,但无法获得网站上显示的其他详细信息,如图中突出显示的。实际上,这些文档驻留在子文件夹中,因此我使用ExecuteQuery()一旦我到达指定的文档文件夹,然后将该文件夹的所有文件集合加载到上下文中,然后尝试读取网页的列以及excel文件名。感谢Anchal的回答,但仍然无法读取项目[“修改人”]、项目[“审阅状态”]和项目[“签出到”]列。将异常获取为“项[”签出到“]”引发了类型为“Microsoft.SharePoint.Client.PropertyOrFieldNotInitializedException”的异常,请在引用列时使用该列的内部名称