Exemple #1
0
		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;
		}
Exemple #2
0
        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();
        }
Exemple #3
0
        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();
                }
        }
Exemple #4
0
		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;
        }
Exemple #6
0
        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}");
        }
Exemple #7
0
		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);
			}
		}
Exemple #8
0
        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();
        }
Exemple #9
0
        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);
            }
        }