转:http://blog.****.net/pclzr/article/details/7591731
SPFolder是SharePoint对象模型中文件夹相关的类,它的使用方法相对比较简单。获取一个SPFolder的对象可以通过SPFolderCollection使用以下两种方法获得。
· folders[int index]:通过文件夹集合中的下标来获得;
· folders[string url]:通过该文件夹的url来获得。
而SPFolderCollection对象一般可通过SPWeb.Folders属性或SPFolder.SubFolders属性来获得。
而在SPWeb和SPList的对象模型中,都有该网站(或列表)所在的根目录的信息,可以直接通过SPWeb.RootFolder属性和SPList.RootFolder属性得到。但是需要特别指出的是,SPList.RootFolder的访问默认是没有开启的,如果想通过这种方法得到一个SPFolder对象,必须先将SPListCollection.IncludeRootFolder属性设为true。
在SPWeb中,也可以使用GetFolder方法来获得该网站中的某个文件夹对应的SPFolder对象。
· GetFolder(string url):参数为该文件夹所对应的路径(注意不要包含最后的“/”字符)。
文件夹的添加和删除同样是通过SPFolderCollection来完成的。
· Add(string url):添加一个文件夹,参数为待添加文件夹的url,该函数成功后直接返回一个SPFolder对象;
· Delete(string url):删除一个文件夹,参数为待删除文件夹的url。
在SPFolder类中,有如下一些常用的属性。
· ContainingDocumentLibrary:如果该文件夹是包含于一个文档库中的,那么该属性返回标识该文档库列表的Guid。该属性只读;
· Exists:判断该文件夹是否存在,在获取一个文件夹之后(尤其是通过url的方式获取一个文件夹之后),非常有必要先判断该文件夹是否存在,因为在获取文件夹的时候,文件夹不存在并不会引发异常,而在使用一个不存在的文件夹的时候,必然会引发异常。该属性只读;
· Files:该文件夹下的所有文件的集合;
· Name:该文件夹的名称(只读);
· ParentFolder:它的上一级文件夹的对象(只读);
· ParentWeb:该文件夹所在网站的对象(只读);
· ServerRelativeUrl:该文件夹相对于服务器根地址的url(只读);
· SubFolders:该文件夹下所有子文件夹的集合;
· Url:该文件夹相对于其所在网站的url(只读)。
SPFolder也提供了两个非常有用的函数。
·CopyTo(string newUrl):将该文件夹复制到参数所指定的url中;
·MoveTo(string newUrl):将该文件夹移动到参数所指定的url中。
【示例9-7】 一个简单的函数,通过递归的方法遍历某文件夹下的层级结构:
void LookupFolders(SPFolder parentFolder, int level)
{
for(int i=0; i<level; i++)
Console.Write('\t');
Console.WriteLine(parentFolder.Name);
foreach(SPFolder subFolder in parentFolder.SubFolders)
{
if(subFolder.Exists)
LookupFolders(subFolder, level+1);
}
}