如何对sharepoint图片库的文件夹的图片按照时间排序并分页显示

/// <summary>

        /// 获取图片库第一层文件夹--根据文件夹名称排序

        /// </summary>

        /// <param name="siteUrl"></param>

        /// <param name="weburl"></param>

        /// <param name="listID"></param>

        /// <returns></returns>

        public List<SPFolder> GetListRootFoldersOrderByName(string siteUrl, string weburl, string listID)

        {

            List<SPFolder> folderList = new List<SPFolder>();

            try

            {

                if (!string.IsNullOrEmpty(siteUrl) && !string.IsNullOrEmpty(weburl) && !string.IsNullOrEmpty(listID))

                {

                    using (SPSite currentsite = new SPSite(siteUrl))

                    {

                        using (SPWeb currentweb = currentsite.OpenWeb(weburl))

                        {

                            Guid listGuid = new Guid(listID);

                            SPList list = currentweb.Lists[listGuid];

                            if (list != null)

                            {

                                SPFolder rootfolder = list.RootFolder;

                                //按照创建文件夹的时间排序

 
  
                                folderList = (from SPFolder fr in rootfolder.SubFolders

                                              where fr.Name != "Forms"

                                              orderby fr.Name ascending

                                              select fr).ToList();

                            }

                        }

                    }

                }

            }

            catch (Exception)

            {

 
  
            }

 
  
            return folderList;

        }

 

 

分页显示

 /// <summary>

        /// 获取图片库第一层文件夹-linq分页

        /// </summary>

        /// <param name="siteUrl"></param>

        /// <param name="weburl"></param>

        /// <param name="listID"></param>

        /// <param name="pageSize"></param>

        /// <param name="pageIndex"></param>

        /// <param name="totalCount"></param>

        /// <returns></returns>

        public List<SPFolder> GetListRootFolders(string siteUrl, string weburl, string listID, int pageSize, int pageIndex, out int totalCount)

        {

            List<SPFolder> folderList = new List<SPFolder>();

            int count = 0;

            try

            {

                if (!string.IsNullOrEmpty(siteUrl) && !string.IsNullOrEmpty(weburl) && !string.IsNullOrEmpty(listID))

                {

                    using (SPSite currentsite = new SPSite(siteUrl))

                    {

                        using (SPWeb currentweb = currentsite.OpenWeb(weburl))

                        {

                            Guid listGuid = new Guid(listID);

                            SPList list = currentweb.Lists[listGuid];

                            if (list != null)

                            {

                                SPFolder rootfolder = list.RootFolder;

                                //按照创建文件夹的时间排序

                                count = rootfolder.SubFolders.Count - 1;//不记录Forms

                                folderList = new List<SPFolder>((from SPFolder fr in rootfolder.SubFolders

                                                                 where fr.Name != "Forms"

                                                                 orderby fr.Properties["vti_timecreated"] descending

                                                                 select fr).Skip((pageIndex - 1) * pageSize).Take(pageSize));

                            }

                        }

                    }

                }

            }

            catch (Exception)

            {

 
  
            }

            totalCount = count;

            return folderList;

        }

 /// <summary>

        /// 获取文件夹第一个图片文件

        /// </summary>

        /// <param name="f"></param>

        /// <returns></returns>

        public SPFile GetFirstImgByFolder(SPFolder f)

        {

            if (f.Files.Count > 0)

            {

                SPFile file = (from SPFile fe in f.Files

                               orderby fe.TimeCreated descending

                               select fe).FirstOrDefault();

                return file;

            }

            return null;

        }


 /// <summary>

        /// 获取列表文件夹下的子文件夹

        /// </summary>

        /// <param name="folderGuid"></param>

        /// <param name="siteUrl"></param>

        /// <param name="weburl"></param>

        /// <param name="listID"></param>

        /// <returns></returns>

        public List<SPFolder> GetSubFolders(Guid folderGuid, string siteUrl, string weburl, string listID)

        {

            List<SPFolder> folderList = new List<SPFolder>();

            try

            {

                if (!string.IsNullOrEmpty(siteUrl) && !string.IsNullOrEmpty(weburl) && !string.IsNullOrEmpty(listID))

                {

                    using (SPSite currentsite = new SPSite(siteUrl))

                    {

                        using (SPWeb currentweb = currentsite.OpenWeb(weburl))

                        {

                            Guid listGuid = new Guid(listID);



                            SPList list = currentweb.Lists[listGuid];

                            if (list != null)

                            {

                                SPListItem rootfolder = list.Folders[folderGuid];

                                if (rootfolder.Folder.Exists)

                                {

                                    folderList = new List<SPFolder>((from SPFolder fr in rootfolder.Folder.SubFolders

                                                                     where fr.Name != "Forms"

                                                                     orderby fr.Properties["vti_timecreated"] descending

                                                                     select fr)).ToList();

                                }

                            }

                        }

                    }

                }

            }

            catch (Exception)

            {



            }

            return folderList;

        }





        #region//获取某个选择的文件夹下的图片

        /// <summary>

        /// 根据选择的文件夹获取下面的图片

        /// </summary>

        /// <param name="selectedFolderValueList">选中的文件夹</param>

        /// <param name="splist">列表</param>

        /// <returns>返回检索的数据集合</returns>

        public static List<PhotoFileEntity> GetPhotoListToSelected(string selectedFolderValueList, SPList splist)

        {

            //返回的值申明

            List<PhotoFileEntity> photolist = new List<PhotoFileEntity>();

            //

            try

            {

                //选中的文件夹

                if (!string.IsNullOrEmpty(selectedFolderValueList))

                {

                    #region//根据选择的值得到文件夹

                    string[] folderList = selectedFolderValueList.Split(new char[] { ',' });

                    #endregion



                    #region//循环文件夹

                    if (folderList != null && folderList.Length > 0)

                    {

                        foreach (string folderguid in folderList)

                        {

                            #region//根据文件夹的guid得到第1张图片

                            if (!string.IsNullOrEmpty(folderguid))

                            {

                                SPListItem itemfolder = splist.Folders[new Guid(folderguid)];

                                //

                                if (itemfolder != null)

                                {

                                    //文件夹

                                    SPFolder subfolder = itemfolder.Folder;

                                    //如果文件夹不为空

                                    if (subfolder != null)

                                    {

                                        #region//读取第1张图片为文件夹显示的图片

                                        //读取照片

                                        List<SPFile> spfiles = (from SPFile file in subfolder.Files

                                                                orderby file.TimeCreated descending

                                                                select file).ToList();

                                        //如果不为空

                                        if (spfiles != null)

                                        {

                                            //值读取一张

                                            foreach (SPFile spfile in spfiles)

                                            {

                                                #region//读取照片详细信息

                                                PhotoFileEntity doc = new PhotoFileEntity();

                                                //赋值

                                                doc.FileName = spfile.Name;

                                                //文件夹的名称

                                                doc.FolderName = subfolder.Name;

                                                //文件夹的相对url

                                                doc.FolderUrl = HttpUtility.UrlEncode(subfolder.Url);

                                                //扩展名

                                                doc.Extension = spfile.Item["File_x0020_Type"] == null ? string.Empty :

                                                spfile.Item["File_x0020_Type"].ToString();

                                                //大小缩略图

                                                string twName = doc.FileName.Replace(string.Format(".{0}", doc.Extension),

                                                    string.Format("_{0}", doc.Extension));

                                                //缩略图的url

                                                doc.ThumbnailUrl = string.Format("{0}/{1}/_t/{2}.jpg", subfolder.ParentWeb.Url, doc.FolderUrl, twName);

                                                //大图的url

                                                doc.LargeImageUrl = string.Format("{0}/{1}/_w/{2}.jpg", subfolder.ParentWeb.Url, doc.FolderUrl, twName);

                                                //

                                                doc.Id = spfile.UniqueId;

                                                doc.FileUrl = subfolder.ParentWeb.Url + "/" + spfile.Url;

                                                doc.ServerRelativeUrl = spfile.ServerRelativeUrl;

                                                doc.TotalLength = spfile.TotalLength;

                                                doc.TimeCreated = spfile.TimeCreated;

                                                doc.TimeLastModified = spfile.TimeLastModified;

                                                //如果不为空

                                                if (spfile.Item != null)

                                                {

                                                    //描述

                                                    doc.Description = spfile.Item["Description"] == null ? string.Empty :

                                                        spfile.Item["Description"].ToString();

                                                    //关键字

                                                    doc.KeyWords = spfile.Item["Keywords"] == null ? string.Empty :

                                                        spfile.Item["Keywords"].ToString();

                                                    //图片宽度

                                                    doc.Width = spfile.Item["ImageWidth"] == null ? 0 : int.Parse(spfile.Item["ImageWidth"].ToString());

                                                    //图片高度

                                                    doc.Height = spfile.Item["ImageHeight"] == null ? 0 : int.Parse(spfile.Item["ImageHeight"].ToString());

                                                }



                                                SPUser user = spfile.Author;

                                                //得到作者

                                                if (user != null)

                                                {

                                                    doc.AuthorName = user.Name;

                                                    doc.AuthorLoginName = user.LoginName;

                                                }

                                                //加入到集合里来

                                                photolist.Add(doc);

                                                #endregion



                                            }

                                        }

                                        #endregion

                                    }

                                }

                            }

                            #endregion



                        }

                    }

                    #endregion

                }

            }

            catch

            {

            }

            //return

            return photolist;

        }

        #endregion

 

你可能感兴趣的:(SharePoint)