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); }
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; }
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); }
private void AddChildToNode(IFileSystemElement element) { FileTreeNode nwNode = new FileTreeNode(Tree, this, element); if (nwNode.IsDirectory) { ChildDirectoryNodes?.Add(nwNode); } else { ChildFileNodes?.Add(nwNode); } }
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(); }
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); }
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; } }
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); }
/// <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)); }
/// <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)); }
/// <summary> /// Сканирует <see cref="IFileSystemElement"/> /// </summary> /// <returns> /// Список найденных <see cref="Suspect"/> /// </returns> public IList <Suspect> Scan(IFileSystemElement element) { return(element.Accept(this)); }
private SearchNode(SearchTree tree, SearchNode parent, IFileSystemElement element) : base(tree) { Parent = parent; Value = element; }