代码之家  ›  专栏  ›  技术社区  ›  Vijay

如何在文件夹中查找项目计数?

  •  2
  • Vijay  · 技术社区  · 16 年前

    我注意到 SPFolder.Files.Count 总是零。

    3 回复  |  直到 16 年前
        1
  •  1
  •   Aryabhatta Aryabhatta    16 年前

    我假定您要查找的是直接子级,而不是子级(如子文件夹中的项)。

    是否还要在计数中包含子文件夹?在这种情况下,您可以使用: SPFolder.ItemCount .

    using (SPSite site = new SPSite(mySPSite))
    {
        SPWeb web = site.OpenWeb();
        SPList list = web.Lists[myList];
        SPFolder folderInstance = list.RootFolder.SubFolders[folderUrl];
    
        SPQuery query = new SPQuery() ;
        query.Folder = folderInstance;
    
        SPListItemCollection items = list.GetItems(query) ;
    
        Console.WriteLine(items.Count);
    }
    

    我没试过。如果查询返回where子句,则可能需要添加where子句来删除文件夹。

    如果要包括所有列表项(即使在子文件夹中),请设置 SPQuery.ViewAttributes 字段组件 query.ViewAttributes = "Scope=\"Recursive\""

        2
  •  1
  •   The Unfun Cat    13 年前

    是否尝试从SPFolder获取SPListItem,并检查SPBuiltInFieldId.ItemChildCount和SPBuiltInFieldId.FolderChildCount字段中的值?

    SPFolder folder = ...;
    int? noOfItems = folder.Item[SPBuiltInFieldId.ItemChildCount] as int?;
    int? noOfFolders = folder.Item[SPBuiltInFieldId.FolderChildCount] as int?;
    

    看到了吗

    SPBuiltInFieldId.ItemChildCount Field

    SPBuiltInFieldId.FolderChildCount Field

    更多信息。

        3
  •  0
  •   Ryan    16 年前

    From Microsoft

    检索 列表中的项目数。作为一个侧面 但是,性能 结果。例如,如果您需要 使用。。。