当前位置: 首页>>代码示例>>C#>>正文


C# Folder.EnsureProperty方法代码示例

本文整理汇总了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);
            }
        }
开发者ID:biste5,项目名称:PnP-Sites-Core,代码行数:54,代码来源:FileFolderExtensions.cs

示例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;
        }
开发者ID:johnnygoodey,项目名称:PnP-PowerShell,代码行数:49,代码来源:SPOProvider.cs


注:本文中的Folder.EnsureProperty方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。