zyk198500 发表于 2019-2-5 08:50:13

sharepoint 获取特定folder下文件的数量 C#

  using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.SharePoint;
using System.Text.RegularExpressions;
using System.IO;
  namespace getFileNum
{
    class Program
    {
      static void Main(string[] args)
      {
         
         string[] temp = System.IO.File.ReadAllLines("path.txt", System.Text.Encoding.UTF8);
                //System.Text.Encoding.GetEncoding("unicode"));
         InitionFile();
            foreach (string weburl in temp)
            {
                using (SPSite site = new SPSite(weburl))
                {
                  using (SPWeb web = site.OpenWeb())
                  {
                        SPList list = web.GetListFromUrl(weburl);
                        string folderString = null;
                        if (weburl.Contains("&"))
                        {
                            folderString = Regex.Match(weburl, "RootFolder=.+?&").Value;
                        }
                        else
                        {
                            folderString = Regex.Match(weburl, "RootFolder=.+").Value;
                        }
                        //Console.WriteLine("{0}", folderString);
  if (folderString == null)
                        {
                            folderString = weburl;
  }
                        else
                        {
                            folderString = folderString.Replace("RootFolder=", "");
                            if (folderString.Contains("&"))
                            {
                              folderString = folderString.Replace("&", "");
                            }
  }
  SPFolder folder = web.GetFolder(folderString);
                        SPQuery query = new SPQuery();
                        query.Folder = folder;
                      //query.ViewAttributes = "Scope=\"RecursiveAll\"";//get files and folders
                        query.ViewAttributes = "Scope=\"Recursive\""; //only get all files
                        query.Query = "";
                        SPListItemCollection items = list.GetItems(query);
  Console.WriteLine( folder.Name+ "\t" + items.Count);
                        writer.WriteLine( folder.Name+ "\t" + items.Count);
  }
                }
            }
            CloseFile();
  
      }
  static StreamWriter writer;
      static void InitionFile()
      {
            writer = new StreamWriter("num.txt", false );
      }
      static void CloseFile()
      {
            writer.Flush();
            writer.Close();
      }
  static void WriteLine(string msg)
      {
            writer.WriteLine(msg);
      }
    }
}

  




页: [1]
查看完整版本: sharepoint 获取特定folder下文件的数量 C#