WebページにSharepoint 2010ドキュメントライブラリのファイルを表示しています。私は正常にファイルとそのアイコンのリストを表示しています。ただし、ファイルのいくつかはサブフォルダにあり、ファイルアイコンを表示する代わりに、フォルダアイコンを表示したいと思います。Sharepointファイルがサブフォルダに含まれていることを検出する方法
ファイルがサブフォルダにあるときを検出するにはどうすればよいですか?
私は、各ファイルのServerRelativeUrlを解析してフォルダ構造を判断できました。別の方法があると私は望んでいる。ここで
は、SharePointライブラリです:
using (ClientContext clientContext = new ClientContext(SharepointSite))
{
var query = new CamlQuery
{
ViewXml = "<View Scope='RecursiveAll'>" +
"<Query>" +
"<Where>" +
"<Eq>" +
"<FieldRef Name='FSObjType' />" +
"<Value Type='Integer'>0</Value>" +
"</Eq>" +
"</Where>" +
"</Query>" +
"</View>"
};
var sourceList = clientContext.Web.Lists.GetByTitle("Test Library");
var files = sourceList.GetItems(query);
clientContext.Load(files);
clientContext.ExecuteQuery();
foreach (var file in files)
{
var id = file.Id;
var filename = file["FileLeafRef"].ToString();
var iconName = clientContext.Web.MapToIcon(filename, string.Empty, IconSize.Size16);
clientContext.ExecuteQuery();
var imgUrl = "http://sharepointsite/_layouts/images/" + iconName.Value;
Image iconImage = new Image {ImageUrl = imgUrl};
clientContext.Load(file.ParentList);
clientContext.ExecuteQuery();
var listUrl = file.ParentList.DefaultDisplayFormUrl;
HyperLink docLink = new HyperLink
{
Text = filename,
NavigateUrl = listUrl + "?ID=" + id //ToDo: fix
};
HtmlTableRow row = new HtmlTableRow();
HtmlTableCell cell1 = new HtmlTableCell();
cell1.Controls.Add(iconImage);
HtmlTableCell cell2 = new HtmlTableCell();
cell2.Controls.Add(docLink);
row.Cells.Add(cell1);
row.Cells.Add(cell2);
tbFiles.Rows.Add(row);
}
}
:
そして、ここでは、そのライブラリ内のファイルのリストを生成したコードでありますそれはでTS:
のみ、リスト内の最初のファイルには、最上位のライブラリに実際にあります。残りは「テストフォルダ」にあります。