예제 #1
0
        private void AddDirRecursive(string dir_path)
        {
            MonitorConfig monitor_config = Config.GetMonitorConfig();
            List <string> files          = new List <string>(Directory.EnumerateFiles(dir_path));
            int           dir_id         = SaveDirRow(dir_path);

            foreach (string file in files)
            {
                //If the file is on the exclude list, ignore it
                if (monitor_config.exclude.Contains(file))
                {
                    continue;
                }
                FileInfo f_info = new FileInfo(file);
                SaveFileRow(f_info.FullName, f_info.Name, f_info.Length, f_info.LastAccessTimeUtc, dir_id);
            }

            List <string> subdirs = new List <string>(Directory.EnumerateDirectories(dir_path));

            foreach (string dir in subdirs)
            {
                if (!monitor_config.exclude.Contains(dir))
                {
                    AddDirRecursive(dir);
                }
            }
        }
예제 #2
0
        private void ScanFileSystem()
        {
            next_dir_id = 1;
            MonitorConfig monitor_config = Config.GetMonitorConfig();

            List <String> dirs = new List <String>();

            foreach (var item in monitor_config.include)
            {
                //If the item is on the exclude list, ignore it and all subdirectories
                if (monitor_config.exclude.Contains(item))
                {
                    continue;
                }
                if (Directory.Exists(item))
                {
                    dirs.Add(item);
                }
                else
                {
                    //Directory does not exist, so ignore it
                }
            }

            foreach (var dir in dirs)
            {
                AddDirRecursive(dir);
            }

            AddAllRows();
        }
예제 #3
0
 public static MonitorConfig GetMonitorConfig()
 {
     if (monitor_config == null)
     {
         StreamReader sr       = new StreamReader(data_dir + "\\monitor-config.json");
         string       contents = sr.ReadToEnd();
         sr.Close();
         monitor_config = JsonConvert.DeserializeObject <MonitorConfig>(contents);
     }
     return(monitor_config);
 }
예제 #4
0
        public Daemon()
        {
            event_set = new HashSet <string>();

            monitor_config = Config.GetMonitorConfig();
            foreach (var dir in monitor_config.include)
            {
                Monitor m = new Monitor(dir, RaiseDirEvent);
            }
            Console.WriteLine(monitor_config);
        }