Exemplo n.º 1
0
        private void FindFiles(string path, uint maxBytes, bool showErrors, ProcessFileCallback processFile)
        {
            // Modified largely from https://developerslogblog.wordpress.com/2020/02/25/c-how-to-find-all-files-recursively-in-a-folder/
            var paths            = new List <string>();
            var directoriesQueue = new Queue();

            directoriesQueue.Enqueue(path);

            while (directoriesQueue.Count > 0)
            {
                var currentPath = (string)directoriesQueue.Dequeue();

                try
                {
                    //Console.WriteLine("Processing folder " + currentPath);
                    var directories = Directory.GetDirectories(currentPath);
                    foreach (var directory in directories)
                    {
                        directoriesQueue.Enqueue(directory);
                    }

                    foreach (var file in Directory.GetFiles(currentPath))
                    {
                        processFile(file, showErrors);
                    }
                }
                catch (Exception e)
                {
                    if (showErrors)
                    {
                        Console.WriteLine($"ERROR: {e}");
                    }
                }
            }
        }
Exemplo n.º 2
0
 public DirectoryWalker(ProcessDirCallback dirCallback,
                        ProcessFileCallback fileCallback)
 {
     this.dirCallback  = dirCallback;
     this.fileCallback = fileCallback;
 }