本文整理汇总了C#中Folder.EnsureProperty方法的典型用法代码示例。如果您正苦于以下问题:C# Folder.EnsureProperty方法的具体用法?C# Folder.EnsureProperty怎么用?C# Folder.EnsureProperty使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Folder
的用法示例。
在下文中一共展示了Folder.EnsureProperty方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: CreateFolderImplementation
private static Folder CreateFolderImplementation(FolderCollection folderCollection, string folderName, Folder parentFolder = null)
{
ClientContext context = null;
if (parentFolder != null)
{
context = parentFolder.Context as ClientContext;
}
List parentList = null;
if (parentFolder != null)
{
parentFolder.EnsureProperty(p => p.Properties);
if (parentFolder.Properties.FieldValues.ContainsKey("vti_listname"))
{
if (context != null)
{
Guid parentListId = Guid.Parse((String)parentFolder.Properties.FieldValues["vti_listname"]);
parentList = context.Web.Lists.GetById(parentListId);
context.Load(parentList, l => l.BaseType, l => l.Title);
context.ExecuteQueryRetry();
}
}
}
if (parentList == null)
{
// Create folder for library or common URL path
var newFolder = folderCollection.Add(folderName);
folderCollection.Context.Load(newFolder);
folderCollection.Context.ExecuteQueryRetry();
return newFolder;
}
else
{
// Create folder for generic list
ListItemCreationInformation newFolderInfo = new ListItemCreationInformation();
newFolderInfo.UnderlyingObjectType = FileSystemObjectType.Folder;
newFolderInfo.LeafName = folderName;
parentFolder.EnsureProperty(f => f.ServerRelativeUrl);
newFolderInfo.FolderUrl = parentFolder.ServerRelativeUrl;
ListItem newFolderItem = parentList.AddItem(newFolderInfo);
newFolderItem["Title"] = folderName;
newFolderItem.Update();
context.ExecuteQueryRetry();
// Get the newly created folder
var newFolder = parentFolder.Folders.GetByUrl(folderName);
// Ensure all properties are loaded (to be compatible with the previous implementation)
context.Load(newFolder);
context.ExecuteQuery();
return (newFolder);
}
}
示例2: GetFolderItems
private IEnumerable<object> GetFolderItems(Folder folder, bool throwError = false)
{
var folderAndFiles = new List<object>();
try
{
if (folder != null)
{
var serverRelativePath = GetServerRelativePath(IsPropertyAvailable(folder, "ServerRelativeUrl") ? folder.ServerRelativeUrl : folder.EnsureProperty(f => f.ServerRelativeUrl));
//Get cached cild items
var cachedFolderAndFiles = GetCachedChildItems(serverRelativePath);
if (cachedFolderAndFiles != null) return cachedFolderAndFiles;
var ctx = folder.Context as ClientContext;
if (ctx != null)
{
var webUrl = GetServerRelativePath(IsPropertyAvailable(ctx.Web, "ServerRelativeUrl") ? ctx.Web.ServerRelativeUrl : ctx.Web.EnsureProperty(w => w.ServerRelativeUrl));
//If root of web get subweb
if (serverRelativePath.Equals(webUrl, StringComparison.InvariantCultureIgnoreCase))
{
var subWebs = ctx.Web.EnsureProperty(w => w.Webs.Include(sw => sw.RootFolder));
folderAndFiles.AddRange(subWebs.Select(subWeb => subWeb.RootFolder));
}
}
//Get files and folders
var files = folder.Context.LoadQuery(folder.Files).OrderBy(f => f.Name);
var folders = folder.Context.LoadQuery(folder.Folders).OrderBy(f => f.Name);
folder.Context.ExecuteQueryRetry();
//Merge
folderAndFiles.AddRange(folders);
folderAndFiles.AddRange(files);
//Cache the result
SetCachedChildItems(serverRelativePath, folderAndFiles);
}
}
catch (Exception e)
{
if (throwError)
{
WriteErrorInternal(e.Message, "GetFolderItems", exception: e);
}
}
return folderAndFiles;
}