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 = "<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);
        }
    }
}