Sharepoint中有关文件夹的操作
1、GetItemsWithUniquePermissions根据返回数量和是否返回文件夹获取唯一权限的列表项集合
对于SharePoint对象模型中SPList的GetItemsWithUniquePermissions方法,主要功能是返回不从列表继承安全权限,但具有唯一权限的列表项集合。其中有一个是重载的方法,具有两个参数,定义如下:
public
Collection<SPListItemInfo> GetItemsWithUniquePermissions(
int
maxItemToReturn,
bool
folderOnly);
此方法中的两种参数含义如下:
A)、maxItemToReturn是一个int类型的参数,表示返回具有唯一权限列表项集合的最大数量。
B)、folderOnly是一个布尔bool类型的参数,表示是否只返回具有唯一权限的文件夹类型的列表项。当folderOnly=true时表法只返回文件夹类型的列表项,而当folderOnly=false时列表项和文件夹都返回。
2、使用SPQuery对象获取SharePoint列表或库指定文件夹SPFolder下的项目
SharePoint列表或库是一些可以存储数据和文档的容器,默认是可以根目录下添加内容的。也就是只要创建了一个列表或库,添加的内容都是存储在根文件夹下的,默认列表是没有开启文件夹功能,而库是开启了文件夹功能。
01/// <summary> 02 /// 获取指定文件夹下的所有列表项 03 /// </summary> 04 /// <param name="folder"></param> 05 /// <returns></returns> 06 protected SPListItemCollection GetItemsByFolder(string folder) 07 { 08 SPListItemCollection itemColl = null; 09 SPWeb web = SPContext.Current.Web; 10 SPList list = web.Lists.TryGetList("DemoList"); 11 SPQuery query = new SPQuery(); 12 query.Folder = list.RootFolder.SubFolders[folder]; 13 itemColl = list.GetItems(query); 14 return itemColl; 15 }
/// <summary> 02 /// 设置列表的文件夹功能 03 /// </summary> 04 protected void SetFolders() 05 { 06 SPWeb web = SPContext.Current.Web; 07 SPList list = web.Lists.TryGetList("DemoList"); 08 //开启文件夹功能 09 list.EnableFolderCreation = true; 10 list.Update(); 11 }
01 /// <summary> 02 /// 获取列表的根文件夹 03 /// </summary> 04 protected void GetListRootFolder() 05 { 06 SPWeb web = SPContext.Current.Web; 07 SPList list = web.Lists.TryGetList("项目"); 08 //RootFolder表示根文件夹 09 SPFolder rootFolder = list.RootFolder; 10 this.Label1.Text = "根文件夹是:" + rootFolder.Name; 11 } #RootFolder #根文件夹 #列表 #库
5、获取列表的所有文件夹名称,包括各层次的所有子文件夹的名称
01 /// <summary> 02 /// 获取列表的所有文件夹(不分层次) 03 /// </summary> 04 protected void GetListAllFolders() 05 { 06 SPWeb web = SPContext.Current.Web; 07 SPList list = web.Lists["项目"]; 08 //在列表中文件夹也看做列表项 09 SPListItemCollection fColl = list.Folders; 10 foreach (SPListItem item in fColl) 11 { 12 this.Label1.Text += item.Name + "<br/>"; 13 } 14 }
6、对象模型获取SharePoint 2010指定文件夹下的所有子文件夹
01 /// <summary> 02 /// 根据文件夹名称获取所有子文件夹 03 /// </summary> 04 protected void GetListSubFolders() 05 { 06 SPWeb web = SPContext.Current.Web; 07 SPList list = web.Lists.TryGetList("项目"); 08 //得到所有文件夹 09 SPListItemCollection fColl = list.Folders; 10 foreach (SPListItem item in fColl) 11 { 12 if (item.Name.Equals("2015年")) 13 { 14 //将SPListItem转换为SPFolder对象,此时SPListItem对象必须是通过Foldrs得到的。 15 SPFolder folder = item.Folder; 16 //获取所有子文件夹 17 SPFolderCollection subfColl = folder.SubFolders; 18 foreach (SPFolder f in subfColl) 19 { 20 this.Label1.Text += f.Name + "<br/>"; ; 21 } 22 } 23 } 24 } #文件夹 #子文件夹 #Folders #SubFolders
7、对象模型获取SharePoint 2010列表所有项目并忽略文件夹
01 /// <summary> 02 /// 获取列表中所有的项目,包括文件夹内的项目 03 /// </summary> 04 protected void GetContainsFolderOfAllItem() 05 { 06 SPWeb web = SPContext.Current.Web; 07 SPList list = web.Lists.TryGetList("项目"); 08 //获取所有字段所有文件夹内的项目 09 SPListItemCollection itemColl1 = list.Items; 10 SPQuery query = new SPQuery(); 11 //指定返回的字段 12 query.ViewFields = "<FieldRef Name='Title'/><FieldRef Name='Created'/>"; 13 //忽略文件夹 14 query.ViewAttributes = "Scope=\"Recursive\""; 15 SPListItemCollection itemColl2 = list.GetItems(query); 16 this.gV.DataSource = itemColl2.GetDataTable(); 17 this.gV.DataBind(); 18 }
if (!string.IsNullOrEmpty(listName)) 02 { 03 SPWeb web = SPContext.Current.Web; 04 SPList list = web.Lists[listName]; 05 //获取列表的根文件夹 06 SPFolder rootFolder = list.RootFolder; 07 this.lbl.Text += "根文件夹为:" + rootFolder.Name + "<br/>"; 08 09 //使用SPQuery得到列表项 10 SPQuery query = new SPQuery(); 11 query.ViewAttributes = "Scope=\"Recursive\""; 12 SPListItemCollection queryFolderColl = list.GetItems(query); 13 foreach (SPListItem item in queryFolderColl) 14 { 15 this.lbl.Text += "Name:" + item.Name + ",DisplayName:" + item.DisplayName + "<br/><br/>"; 16 } 17 } 在SharePoint的列表中,有时候会将文件夹和列表项同时存在,但在使用对象模型操作时,总会用到SPQuery对象,此对象可以根据字段、查询条件返回一个结果集,但如果存在文件夹,则就要使用ViewAttributes属性来设置而忽略文件夹。
9、SharePoint 2010列表文件夹SPFolder的相关操作
if (item.Name.Equals("Task1")) 02 { 03 //将SPListItem转换为SPFolder对象,此时SPListItem对象必须是通过Foldrs得到的。 04 SPFolder f = item.Folder; 05 //获取所有的子文件夹 06 SPFolderCollection fColl = f.SubFolders; 07 foreach (SPFolder fx in fColl) 08 { 09 this.lbl.Text += "Task1的子文件夹有:" + fx.Name + "<br/><br/>"; 10 } 11 } 在SharePoint列表中,即可以创建列表项也可以创建文件夹,新创建的列表是不支持新建文件夹,要通过列表设置的“高级设置”页面配置使用列表支持文件夹的相关操作。在列表中,文件夹也可以被看作是列表项SPListItem,不过在做一些文件夹的特殊操作时,还必须将SPListItem转换为SPFolder对象。
/// <summary> 02 /// 获取列表根文件夹下的项目,但不包括文件夹内的项目。 03 /// </summary> 04 protected void GetRootFolderAllItem() 05 { 06 SPWeb web = SPContext.Current.Web; 07 SPList list = web.Lists["项目"]; 08 //获取根文件夹 09 SPFolder rootFolder = list.RootFolder; 10 SPQuery query = new SPQuery(); 11 query.Folder = rootFolder; 12 //获取所有的列表项,同时包括子文件夹内的列表项,但并不会获取文件夹。 13 SPListItemCollection itemColl = list.Items; 14 //获取根文件夹下的一级内容,包括文件夹。 15 //SharePoint的文件夹类型也是SPListItem。 16 SPListItemCollection rootItemColl = list.GetItems(query); 17 foreach (SPListItem item in rootItemColl) 18 { 19 //用来区分文件夹和列表项 20 if (!item.ContentType.Name.Equals("文件夹")) 21 { 22 this.Label1.Text += "名称:" + item.DisplayName + "<br/><br/>"; 23 } 24 } 25 } #根文件夹 #列表 #项目 #文件夹
/// <summary> 02 /// 获取指定文件夹下的所有项目 03 /// </summary> 04 /// <param name="listName"></param> 05 protected void GetSpecifiedFolderAllItem(string listName) 06 { 07 SPWeb web = SPContext.Current.Web; 08 SPList list = web.Lists[listName]; 09 SPQuery query = new SPQuery(); 10 //获取指定文件夹的SPFolder对象 11 query.Folder = list.RootFolder.SubFolders["Task1"]; 12 //query.ViewAttributes = "Scope=\"Recursive\""; 13 SPListItemCollection itemColl = list.GetItems(query); 14 this.gV.DataSource = itemColl.GetDataTable(); 15 this.gV.DataBind(); 16 } #文件夹 #列表项 #项目 #子文件夹
12、获取SharePoint 2010文档库的文件夹及子文件夹
在SharePoint中,文档库是基于列表的特殊情况,也就说文档库其实也是列表,只不过它增加了一些对于文件的存储和操作。可以将获取的文档库列表SPList转换为SPDocumentLibrary。得到了SPDocumentLibrary对象之后,就可以执行与文件紧密相关的操作了。 SharePoint的文档库与列表都可以创建文件夹,默认情况列表的文件夹功能是禁用的,但文档库的文件夹功能是可以使用的。 #SPDocumentLibrary #文档库 #文件夹 #子文件夹
/// <summary> 02 /// 向列表根目录添加文件夹 03 /// </summary> 04 /// <param name="listName"></param> 05 protected void AddFolderToRoot(string listName) 06 { 07 SPWeb web = SPContext.Current.Web; 08 web.AllowUnsafeUpdates = true; 09 SPList list = web.Lists[listName]; 10 //允许列表添加文件夹 11 list.EnableFolderCreation = true; 12 SPListItem item = list.Items.Add("", SPFileSystemObjectType.Folder, "Task5"); 13 item.Update(); 14 web.AllowUnsafeUpdates = false; 15 }
/// <summary> 02 /// 添加子文件夹到指定的文件夹下 03 /// </summary> 04 /// <param name="listName"></param> 05 protected void AddFolderToSpecifiedFolder(string listName) 06 { 07 SPWeb web = SPContext.Current.Web; 08 SPList list = web.Lists[listName]; 09 web.AllowUnsafeUpdates = true; 10 list.EnableFolderCreation = true; 11 //将Task5001添加添加到Task5文件夹下 12 SPListItem item = list.Items.Add("/Lists/Tasks/Task5", SPFileSystemObjectType.Folder, " Task5001"); 13 item.Update(); 14 } #列表 #文件夹 #子文件夹 #Folder
15、在SharePoint 2010列表中删除指定的文件夹
使用页面方式删除SharePoint列表的文件夹跟删除列表项没有任何区别,而在使用对象模型删除文件夹要比删除列表项多出一种方法。这是因为列表对象SPList有一个Folders属性,通过此属性的GetItemById()方法可以得到文件夹项。而使用此方法是不能得到列表项的。 #列表 #文件夹 #SPFolder
SharePoint列表和库的文件夹既然能创建,则肯定也可以更新,文件夹使用页面更新非常的简单,只需要点击几下即可修改完成。但是要使用SharePoint对象模型更新文件夹,则首先要得到SPListItem对象,然后再将SPListItem转换为SPFolder对象,比创建文件夹要复杂一些。 在SharePoint中更新列表或库的文件夹名称时,必须保证使用SPList. Folders获取到SPListItem对象。
17、获取SharePoint网站下文件夹SPFolder对象的相关操作
在SharePoint的网站结构中,可以虚拟的看作是文件系统,可以创建文件夹及子文件夹,通过SharePoint Designer工具就可以看的一清二楚,但是也可以通过对象模型获取根文件夹及子文件夹的结构。SPWeb对象有一个Folders属性,可以获取此网站下所有一级文件夹的集合。 #网站 #文件夹 #SPFolder
18、使用PowerShell命令创建SharePoint 2010文档库及文件夹
# Add List 2 Function AddList($web,$listName,$listDescription, 3 $listTemplate){ 4 DeleteList $web $listName 5 Write-host ".............Starting create " $listName ",please waiting............." 6 $web.Lists.Add($listName,$listDescription,$listTemplate) 7 Write-host ".............. " $listName " already is created......................." -foregroundcolor green 8 }
在SharePoint 2010文档库视图中,当此文档库有文件夹时,可以以两种方式显示文档库中的文档,一种是只显示文件夹,文件夹中再显示文档。另一种是不显示文件夹,而是把所有文件夹中的文档合并在一起显示在文档库中而不显示文件夹。 #文档库 #视图 #文件夹
20、开启或关闭SharePoint 2010列表的新建文件夹功能
SharePoint 2010的列表和库都是可以创建文件夹的,SharePoint 2010的文件夹功能跟Windows操作系统的文件夹功能基本上差不多,都是用来将不同的内容区分开来存储。 默认情况下,列表的文件夹功能是处于关闭状态的,但库的文件夹功能是处于开启状态的。 #文件夹
以上都是出自Sharepoint资源网上内容,感觉不错,借此收集起来供以后学习和使用。
Sharepoint中有关文件夹的操作的更多相关文章
- 每日学习心得:SharePoint 为列表中的文件夹添加子项(文件夹)、新增指定内容类型的子项、查询列表中指定的文件夹下的内容
前言: 这里主要是针对列表中的文件下新增子项的操作,同时在新建子项时,可以为子项指定特定的内容类型,在某些时候需要查询指定的文件夹下的内容,针对这些场景都一一给力示例和说明,都是一些很小的知识点,希望 ...
- python 中文件夹的操作
文件有两个管家属性:路径和文件名. 路径指明了文件在磁盘的位置,文件名原点的后面部分称为扩展名(后缀),它指明了文件的类型. 一:文件夹操作 Python中os 模块可以处理文件夹 1,当前工作目录 ...
- [转]python中对文件、文件夹的操作——os模块和shutil模块常用说明
转至:http://l90z11.blog.163.com/blog/static/187389042201312153318389/ python中对文件.文件夹的操作需要涉及到os模块和shuti ...
- python中对文件、文件夹的操作
python中对文件.文件夹的操作需要涉及到os模块和shutil模块. 创建文件: 1) os.mknod("test.txt") 创建空文件 2) open(&qu ...
- TFS 掩蔽或取消掩蔽工作区中的文件夹
掩蔽或取消掩蔽工作区中的文件夹 使用掩蔽功能可以阻止用户查看指定的工作区文件夹或者您当前不需要的文件夹.当您在对一个公共父级下的两个或更多个分支中的文件进行操作时,就可以使用掩蔽功能来避免复制不必要的 ...
- 对Android项目中的文件夹进行解释
对Android项目中的文件夹进行解释: · src:里面存放的是Activity程序,或者是以后的其他组件,在此文件夹之中建立类的时候一定要注意,包名称不能是一级. · gen:此文件夹中的内容是自 ...
- Win7-其中的文件夹或文件已在另一个程序中打开
Win7-其中的文件夹或文件已在另一个程序中打开 如何解决Win7系统在删除或移动文件时提示,“操作无法完成,因为其中的文件夹或文件已在另一个程序中打开,请关闭该文件夹或文件,然后重试”. 步骤阅 ...
- Eclipse 中 Java 项目中 .settings 文件夹作用
今天工作时,因对 .settings 文件夹误操作,耗时 6 个多小时,才了解到原因就出在 .settings 文件夹.经查阅资料,对 .settings 做如下整理: 就如setting这个名字,就 ...
- python之文件的读写和文件目录以及文件夹的操作实现代码
这篇文章主要介绍了python之文件的读写和文件目录以及文件夹的操作实现代码,需要的朋友可以参考下 为了安全起见,最好还是给打开的文件对象指定一个名字,这样在完成操作之后可以迅速关闭文件,防止一些无用 ...
随机推荐
- PostgreSQL没有redo log multiplexing
与Oracle不同的是,PostgreSQL中压根没有这种的东西. 若以,如果因为写在线WAL文件是发生磁盘I/O错误,那么数据库系统就启动不了了. 解决的办法,我想,在PostgreSQL中,如论如 ...
- 学习马士兵的struts2/hibernate/spring中遇到的问题及其解决方法
STRUTS2 1. 写好最简单的hello world项目后,无法通过浏览器访问到hello.jsp页面,提示没有资源. 学习structs2的时间,已经更新到了2.3.16了,structs中的很 ...
- 4.3、Libgdx启动类和配置
(原文:http://www.libgdx.cn/topic/45/4-3-libgdx%E5%90%AF%E5%8A%A8%E7%B1%BB%E4%B8%8E%E9%85%8D%E7%BD%AE) ...
- Java和C++中多态的实现方式
多态是面向对象的最主要的特性之一,是一种方法的动态绑定,实现运行时的类型决定对象的行为.多态的表现形式是父类指针或引用指向子类对象,在这个指针上调用的方法使用子类的实现版本.多态是IOC.模板模式实现 ...
- [MongoDB] Insert, find -- 1
MongoDB is JSON Document: How to start MongoDB client: mongod //start the server mongo // start the ...
- wp上一款应用的出生与死亡
起因 因为自己买了个wp手机,所以对于微软的这个wp系统还是非常喜欢,无奈软件质量不高,过年前便买了个wp的开发者帐号,不是很贵,还想着为wp的生态系统做点贡献.无奈工作繁忙,一直没有机会去做.但是自 ...
- cocos2d-html5 笔记3: Node
Cocos2d采用类似于Dom tree的那种形式来各个部分组织起来.最基本的基类是Node吧, Node Node 作为基类,函数很多,我觉得可以分为如下几类,树相关的函数, 一些公共的比较实用的函 ...
- SSIS 64位环境访问Oracle11g
SSIS 为了要能够在64位的机器上面让SSIS存取Oracle,当然需要安装64位的Oracle Provider,但是遇到最大的问题在于SSIS在执行的时候分成两种组件,分别是DTExec.exe ...
- 在ascx中调用另一个ascx的写法
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...
- 配置apache虚拟主机的实例总结
如何实现apache虚拟主机配置. 1.基于ip地址的虚拟主机Listen 80<VirtualHost 172.20.30.40> DocumentRoot /home/httpd/ht ...