【问题标题】:How do I tell if an SPListItem is a document or a folder如何判断 SPListItem 是文档还是文件夹
【发布时间】:2011-10-01 05:12:11
【问题描述】:

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

foreach (SPListItem item in DocumentLibrary)
{
}

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

【问题讨论】:

    标签: sharepoint sharepoint-2010 web-parts


    【解决方案1】:

    如果列表项不是文件夹,则列表项的Folder 属性将为null,因此您可以这样写:

    public bool IsFolder(SPListItem item)
    {
        return item.Folder != null;
    }
    

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

    File 属性也返回 null 如果 该项目是一个文件夹,或者如果该项目 不在文档库中, 虽然不建议这样做 在这些情况下,您可以调用此属性。

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

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

    【讨论】:

      【解决方案2】:

      使用 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
              ...
          }
      }
      

      【讨论】:

        【解决方案3】:
        if( item["ContentType"].ToString() == "Folder")
        

        【讨论】:

          【解决方案4】:
          if (item.Folder!=null) 
            // item is Folder and Folder will hold the SPFolder class
          

          【讨论】:

          • 7 分钟前正确答案! +0。人生是不公平的!!! ;) 开个玩笑也对你 +1。
          【解决方案5】:

          我认为最安全的方法是查看FileSystemObjectType property

          【讨论】:

            【解决方案6】:
            if (oitem.ContentType.Name == spWeb.AvailableContentTypes[SPBuiltInContentTypeId.Folder].Name)
                                    {
                                        Console.WriteLine("Folder Name: " + oitem.Name.ToString());
                                    }
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2011-09-12
              • 1970-01-01
              • 1970-01-01
              • 2014-03-29
              • 1970-01-01
              相关资源
              最近更新 更多