Example #1
0
        public bool RenameCurrentRenamingElement(string nwName)
        {
            IFileSystemElement requestedElement = CurrentRenamingNode.Value;
            string             destPath         = Path.Combine(Path.GetDirectoryName(requestedElement.ElementPath), nwName);
            string             errorMessage     = "";

            try {
                if (requestedElement.ElementType == ElementType.Directory)
                {
                    Directory.Move(requestedElement.ElementPath, destPath);
                }
                else
                {
                    File.Move(requestedElement.ElementPath, destPath);
                }
            } catch (UnauthorizedAccessException e) {
                errorMessage += e.Message;
            } catch (IOException e) {
                errorMessage += e.Message;
            }

            if (errorMessage != "")
            {
                MessageBox.Show("Something went wrong: \n" + errorMessage);
                return(false);
            }

            return(true);
        }
Example #2
0
        private void ElementRenamedHandler(object source, RenamedEventArgs e)
        {
            if (!ChildrenInitialized)
            {
                return;
            }

            IFileSystemElement element = FileSystemFacade.Instance.GetElementFromPath(e.FullPath);

            IFileSystemElement oldElement;

            if (element.ElementType == FileSystemFacade.ElementType.Directory)
            {
                oldElement = new SFMDirectory(e.OldFullPath);
            }
            else
            {
                oldElement = new SFMFile(e.OldFullPath);
            }

            App.Current.Dispatcher.Invoke(() => RemoveChildFromNode(oldElement));
            App.Current.Dispatcher.Invoke(() => AddChildToNode(element));

            Console.WriteLine("File was renamed: " + e.FullPath);
        }
        private void ChangeFocusedTreeNode(IFileSystemElement targetElement)
        {
            Task.Run(() => SearchTreeInstance.EndSearch());

            var nwTreeRoot = FileSystemFacade.Instance.CreateFileSystemTree(targetElement as SFMDirectory).Root;

            DynamicFileSystemTree.LoadNodesChildren(nwTreeRoot);

            FocusedTreeNode = nwTreeRoot;
        }
Example #4
0
        private void ElementCreatedHandler(object source, FileSystemEventArgs e)
        {
            if (!ChildrenInitialized)
            {
                return;
            }

            IFileSystemElement element = FileSystemFacade.Instance.GetElementFromPath(e.FullPath);

            App.Current.Dispatcher.Invoke(() => AddChildToNode(element));

            Console.WriteLine("File was created: " + e.FullPath);
        }
Example #5
0
        private void AddChildToNode(IFileSystemElement element)
        {
            FileTreeNode nwNode = new FileTreeNode(Tree, this, element);

            if (nwNode.IsDirectory)
            {
                ChildDirectoryNodes?.Add(nwNode);
            }
            else
            {
                ChildFileNodes?.Add(nwNode);
            }
        }
Example #6
0
        static void RunScan(IFileSystemElement fileSystemElement, ISystemScanner scanner)
        {
            var result = scanner.Scan(fileSystemElement);

            Console.WriteLine($"{scanner.GetType()} Result:");
            foreach (var suspect in result)
            {
                Console.WriteLine($"'{suspect.Name}' in '{suspect.Path}'");
            }
            if (!result.Any())
            {
                Console.WriteLine("Вирусов нет");
            }
            Console.WriteLine();
        }
Example #7
0
        private bool RemoveChildFromNode(IFileSystemElement element)
        {
            ObservableCollection <FileTreeNode> targetCollection;
            FileTreeNode targetNode = FindNodeInCollection(out targetCollection, element);

            if (targetNode == null)
            {
                return(false);
            }

            targetCollection.Remove(targetNode);
            targetNode.SetUpdating(false);

            Tree.OnTreeNodeDelete(targetNode);
            return(true);
        }
Example #8
0
        internal FileTreeNode(DynamicFileSystemTree tree, FileTreeNode parent, IFileSystemElement value) : this(tree) {
            this.Value  = value;
            this.IsRoot = (parent == null);
            this.Parent = parent;

            this.OpenedAtLeastOnce = IsRoot;

            this.ChildrenInitialized = !IsDirectory;
            this.IsUpdating          = IsExpanded;

            this.PropertyChanged += SetIsUpdatingToIsExpanding;

            if (IsRoot || (parent != null && parent.OpenedAtLeastOnce && parent.ChildDirectoryNodes.Count < 256))
            {
                LoadChildren();
            }
            else
            {
                parent.PropertyChanged += OnPropertyChanged;
            }
        }
Example #9
0
        private FileTreeNode FindNodeInCollection(out ObservableCollection <FileTreeNode> collection, IFileSystemElement elem)
        {
            bool elemIsDirectory = (elem.ElementType == FileSystemFacade.ElementType.Directory);

            collection = (elemIsDirectory) ? ChildDirectoryNodes : ChildFileNodes;

            foreach (var node in ((elemIsDirectory)? ChildDirectoryNodes: ChildFileNodes))
            {
                if (node.Value.ElementPath == elem.ElementPath)
                {
                    return(node);
                }
            }
            return(null);
        }
Example #10
0
 /// <summary>
 /// обработчик события добавления файла
 /// </summary>
 /// <param name="file">файл который был добавлен</param>
 private void ControlFolder_FileAdded(IFileSystemElement file)
 {
     FileList.Add(file);
     LogList.Add(string.Format("[{0}:{1}:{2} ] файл {3} було додано, шлях \"{4}\"", DateTime.Now.Hour, DateTime.Now.Minute, DateTime.Now.Second, file.Name, file.Path));
     OneNotifiMessage(string.Format("Файл {0} , було додано, шлях {1}", file.Name, file.Path));
 }
Example #11
0
 /// <summary>
 /// обработчик события удаления директории
 /// </summary>
 /// <param name="file"></param>
 private void ControlFolder_FolderRemoved(IFileSystemElement file)
 {
     FileList.Add(file);
     LogList.Add(string.Format("[{0}:{1}:{2} ] папку {3} було видалено, шлях \"{4}\"", DateTime.Now.Hour, DateTime.Now.Minute, DateTime.Now.Second, file.Name, file.Path));
     OneNotifiMessage(string.Format("Папку {0} , було видалено, шлях {1}", file.Name, file.Path));
 }
Example #12
0
 /// <summary>
 /// Сканирует <see cref="IFileSystemElement"/>
 /// </summary>
 /// <returns>
 /// Список найденных <see cref="Suspect"/>
 /// </returns>
 public IList <Suspect> Scan(IFileSystemElement element)
 {
     return(element.Accept(this));
 }
Example #13
0
 private SearchNode(SearchTree tree, SearchNode parent, IFileSystemElement element) : base(tree)
 {
     Parent = parent;
     Value  = element;
 }