如何判断SPListItem是文档还是文件夹

Joe*_*Joe 13 sharepoint web-parts sharepoint-2010

我有一个循环遍历文档库,如下例所示.

foreach (SPListItem item in DocumentLibrary)
{
}
Run Code Online (Sandbox Code Playgroud)

如何判断SPListItem文件是文件还是文件夹?

Fré*_*idi 14

列表项的Folder属性将是null项目不是文件夹,因此您可以编写:

public bool IsFolder(SPListItem item)
{
    return item.Folder != null;
}
Run Code Online (Sandbox Code Playgroud)

同样,如果项目不是文档,则项目的File属性将是null.但是,文档建议不要在这种情况下使用此属性:

File属性还返回null如果项目是文件夹,或者如果该项目不在文档库,但不建议您致电在这种情况下该属性.

另一种方法是检查列表的BaseType属性:

public bool IsDocument(SPListItem item)
{
    return !IsFolder(item)
        && item.ParentList.BaseType == SPBaseType.DocumentLibrary;
}
Run Code Online (Sandbox Code Playgroud)


小智 7

使用SPFileSystemObjectType枚举.这是一个样本......

foreach (SPListItem item in docLib.Items)
{
    if (item.FileSystemObjectType == SPFileSystemObjectType.Folder)
    {
        // item is a folder 
        ...
    }
    else if (item.FileSystemObjectType == SPFileSystemObjectType.File)
    {
        // item is a file
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)