public override void LoadSubNodes() { if(Nodes.Count <= 0 || Nodes[0].Text != "") return; try { Nodes.Clear(); var dirSubs = (new DirectoryInfo(Path)).GetDirectories(); TreeView.Cursor = Cursors.WaitCursor; foreach(var newSubNode in from dirSub in dirSubs where (dirSub.Attributes & FileAttributes.Hidden) == 0 where DirectoryAnalyser.IsAccessible(dirSub.FullName) select new ScanerNode(dirSub.FullName, false)) Nodes.Add(newSubNode); } catch(Exception ex) { Lib.Win.Data.Env.WriteToLog(ex); } base.LoadSubNodes(); TreeView.Cursor = Cursors.Default; }
public override void LoadSubNodes() { try { if (Nodes.Count > 0 && string.IsNullOrEmpty(Nodes[0].Text)) // node's children loading needed { Nodes.Clear(); DirectoryInfo[] dirSubs = (new DirectoryInfo(Path)).GetDirectories(); TreeView.Cursor = Cursors.WaitCursor; foreach (DirectoryInfo dirSub in dirSubs) { if ((dirSub.Attributes & FileAttributes.Hidden) == 0 && // не скрытый каталог Directory.Exists(dirSub.FullName) && DirectoryAnalyser.IsAccessible(dirSub.FullName)) // есть доступ { SystemFolderNode newSubNode = new SystemFolderNode(dirSub.FullName, false); Nodes.Add(newSubNode); } } TreeView.Cursor = Cursors.Default; } } catch (Exception ex) { Lib.Win.Data.Env.WriteToLog(ex); } RemoveBoldRecursive(); }
public void CreateFaxRoot <T>(SynchronizedCollection <T> faxNodes, Func <String, DataTable> execFunc, Func <int, string, string, T> CreateRoot) where T : FaxNode { faxNodes = new SynchronizedCollection <T>(); using (DataTable dt = execFunc(Environment.CurCultureInfo.TwoLetterISOLanguageName)) using (DataTableReader dr = dt.CreateDataReader()) { while (dr.Read()) { var nodeID = (int)dr[Environment.FaxFolderData.IDField]; var nodeName = (string)dr[Environment.FaxFolderData.NameField]; var nodePath = (string)dr[Environment.FaxFolderData.NetworkPathField]; var server = Lib.Win.Document.Environment.GetServers().FirstOrDefault(t => Directory.Exists(Path.Combine(t.FaxPath, nodePath))); if (server != null && !string.IsNullOrEmpty(server.FaxPath)) { if (DirectoryAnalyser.IsAccessible(Path.Combine(server.FaxPath, nodePath))) { T node = CreateRoot(nodeID, nodeName, Path.Combine(server.FaxPath, nodePath)); PrepareAndAdd(node); faxNodes.Add(node); } } } dr.Close(); dr.Dispose(); dt.Dispose(); } }
public static ScanerNode CreateRoot() { if(Environment.IsConnected) { string rootPath = Lib.Win.Document.Environment.GetServers().FirstOrDefault(t => !string.IsNullOrEmpty(t.ScanPath)).ScanPath; if(!string.IsNullOrEmpty(rootPath) && DirectoryAnalyser.IsAccessible(rootPath)) return new ScanerNode(rootPath, true); } return null; }
public HttpServer(string ip, int port, DirectoryInfo directory) { this.IP = ip; this.Port = port; uriHelper = new HttpUriHelper(ip, port); // Настроим логгер this.LoadLogger(); // Настройка буффера и анализатора дирректории this.DirectoryWorker = new DirectoryAnalyser(directory); // Добавим обработчик события создания нового файла this.DirectoryWorker.NotifyAboutCreate += OnNewFile; // Добавим обработчик события удаления файла this.DirectoryWorker.NotifyAboutDelete += OnDeleteFile; }
public FileDedupe( FileDedupeConfig fileDedupeConfig, IndexedFileParser indexedFileParser, DirectoryAnalyser dedupeAnalyser, IndexWriter indexWriter, IndexerFactory indexerFactory, IndexMerger indexMerger, ILogger logger) { _fileDedupeConfig = fileDedupeConfig; _indexedFileParser = indexedFileParser; _directoryAnalyser = dedupeAnalyser; _indexWriter = indexWriter; _indexerFactory = indexerFactory; _indexMerger = indexMerger; _logger = logger; Console.WriteLine($"Loading Index: {_fileDedupeConfig.IndexFile}"); _index = indexedFileParser.Parse(_fileDedupeConfig.IndexFile); Console.WriteLine($"Loaded Index: {_fileDedupeConfig.IndexFile}"); }
protected ScanerNode(string path, bool root): base(path) { if(root) { unselectedCollapsed = Images.Scaner; selectedCollapsed = Images.Scaner; unselectedExpanded = Images.Scaner; selectedExpanded = Images.Scaner; } else { unselectedCollapsed = Images.SystemFolder; selectedCollapsed = Images.SystemFolder; unselectedExpanded = Images.OpenSystemFolder; selectedExpanded = Images.OpenSystemFolder; } UpdateImages(); var dir = new DirectoryInfo(path); name = root ? rootTitle : dir.Name; Text = name; try { DirectoryInfo[] dirSubs = dir.GetDirectories(); int subCount = dirSubs.Where(dirSub => (dirSub.Attributes & FileAttributes.Hidden) == 0).Count( dirSub => DirectoryAnalyser.IsAccessible(dirSub.FullName)); if(subCount > 0) Nodes.Add(new TreeNode()); } catch(Exception ex) { Lib.Win.Data.Env.WriteToLog(ex); } }
public static async Task MainAsync(string[] args) { var config = ConfigReader.LoadFromFile("config.json"); var logger = new ConsoleLogger(); var dedupeAnalyser = new DirectoryAnalyser(); var indexWriter = new IndexWriter(); var parser = new IndexedFileParser(logger); var indexerFactory = new IndexerFactory(logger); var indexMerger = new IndexMerger(parser, indexWriter, logger); var fileDedupe = new FileDedupe( config, parser, dedupeAnalyser, indexWriter, indexerFactory, indexMerger, logger); fileDedupe.AnalyseDirectories(); }
protected SystemFolderNode(string path, bool root) : base(path) { unselectedCollapsed = Images.SystemFolder; selectedCollapsed = Images.SystemFolder; unselectedExpanded = Images.OpenSystemFolder; selectedExpanded = Images.OpenSystemFolder; UpdateImages(); if (!Directory.Exists(path)) { return; } var dir = new DirectoryInfo(path); name = root ? path : dir.Name; try { using (RegistryKey regKey = Registry.CurrentUser.OpenSubKey("Software\\Microsoft\\Office")) { NumberFormatInfo info = (NumberFormatInfo)NumberFormatInfo.CurrentInfo.Clone(); if (info == null) { return; } info.NumberDecimalSeparator = "."; if (regKey != null) { double ver; string[] versions = regKey.GetSubKeyNames(); foreach (string t in versions.Where(t => double.TryParse(t, NumberStyles.Float, info, out ver) && ver > 0)) { using (RegistryKey versionKey = regKey.OpenSubKey(t + "\\Outlook\\Security")) { if (versionKey == null) { continue; } string opath = versionKey.GetValue("OutlookSecureTempFolder").ToString(); if (!string.IsNullOrEmpty(opath) && opath.TrimEnd(System.IO.Path.DirectorySeparatorChar).Equals(name.TrimEnd(System.IO.Path.DirectorySeparatorChar), StringComparison.CurrentCultureIgnoreCase)) { name = Environment.StringResources.GetString("outlookdir"); opath = opath.TrimEnd(System.IO.Path.DirectorySeparatorChar).ToLower(); GetFileType.OutlookSecureTempFolder = opath; break; } } } } } } catch (Exception ex) { Lib.Win.Data.Env.WriteToLog(ex); } Text = name; try { DirectoryInfo[] dirSubs = dir.GetDirectories(); int subCount = 0; if (dirSubs != null) { subCount = dirSubs.Where(dirSub => (dirSub.Attributes & FileAttributes.Hidden) == 0).Count (dirSub => DirectoryAnalyser.IsAccessible(dirSub.FullName)); } if (subCount > 0) { Nodes.Add(new TreeNode()); } } catch (Exception ex) { Lib.Win.Data.Env.WriteToLog(ex); } }