コード例 #1
0
        public TimeSpan SearchParallelWithFastDirectoryEnumerator(string query)
        {
            Stopwatch     stopwatch = new Stopwatch();
            StringBuilder sb        = new StringBuilder();

            stopwatch.Start();
            DirectoryInfo directory  = new DirectoryInfo(_pathToSearch);
            var           files      = FastDirectoryEnumerator.EnumerateFiles(_pathToSearch, "csw.*", SearchOption.AllDirectories);
            int           matchCount = 0;

            Parallel.ForEach(files, (currentFileData) =>
            {
                string currentFile = currentFileData.Path;
                //Console.WriteLine("{0}",currentFile);
                int lineIndex = 1;
                foreach (var line in File.ReadLines(currentFile))
                {
                    if (line.Contains(query))
                    {
                        sb.AppendFormat("{0}:{1}:{2}", lineIndex, currentFile, line);
                        matchCount++;
                    }

                    lineIndex++;
                }
            });
            stopwatch.Stop();
            //Console.WriteLine("Result:");
            //Console.WriteLine(sb.ToString());
            TimeSpan elapsedTime = stopwatch.Elapsed;

            Console.WriteLine("Search Parallel With FastDirectoryEnumrator Found: {0}", matchCount);
            return(elapsedTime);
        }
コード例 #2
0
        /// <summary>
        /// Gets <see cref="FileData"/> for all the files in a directory that match a
        /// specific filter.
        /// </summary>
        /// <param name="path">The path to search.</param>
        /// <param name="searchPattern">The search string to match against files in the path.</param>
        /// <returns>An object that implements <see cref="IEnumerable{FileData}"/> and
        /// allows you to enumerate the files in the given directory.</returns>
        /// <exception cref="ArgumentNullException">
        /// <paramref name="path"/> is a null reference (Nothing in VB)
        /// </exception>
        /// <exception cref="ArgumentNullException">
        /// <paramref name="filter"/> is a null reference (Nothing in VB)
        /// </exception>
        public static FileData[] GetFiles(string path, string searchPattern, SearchOption searchOption)
        {
            IEnumerable <FileData> e    = FastDirectoryEnumerator.EnumerateFiles(path, searchPattern, searchOption);
            List <FileData>        list = new List <FileData>(e);

            FileData[] retval = new FileData[list.Count];
            list.CopyTo(retval);

            return(retval);
        }
コード例 #3
0
 /// <summary>
 /// Gets <see cref="FileData"/> for all the files in a directory that match a
 /// specific filter.
 /// </summary>
 /// <param name="path">The path to search.</param>
 /// <param name="searchPattern">The search string to match against files in the path.</param>
 /// <returns>An object that implements <see cref="IEnumerable{FileData}"/> and
 /// allows you to enumerate the files in the given directory.</returns>
 /// <exception cref="ArgumentNullException">
 /// <paramref name="path"/> is a null reference (Nothing in VB)
 /// </exception>
 /// <exception cref="ArgumentNullException">
 /// <paramref name="filter"/> is a null reference (Nothing in VB)
 /// </exception>
 public static IEnumerable <FileData> EnumerateFiles(string path, string searchPattern)
 {
     return(FastDirectoryEnumerator.EnumerateFiles(path, searchPattern, SearchOption.TopDirectoryOnly));
 }
コード例 #4
0
 /// <summary>
 /// Gets <see cref="FileData"/> for all the files in a directory.
 /// </summary>
 /// <param name="path">The path to search.</param>
 /// <returns>An object that implements <see cref="IEnumerable{FileData}"/> and
 /// allows you to enumerate the files in the given directory.</returns>
 /// <exception cref="ArgumentNullException">
 /// <paramref name="path"/> is a null reference (Nothing in VB)
 /// </exception>
 public static IEnumerable <FileData> EnumerateFiles(string path)
 {
     return(FastDirectoryEnumerator.EnumerateFiles(path, "*"));
 }