private void Watcher_Deleted(object sender, FileSystemEventArgs e) { string ext = Path.GetExtension(e.FullPath); if (ext.Length == 0) { FolderRemoved?.Invoke(e.FullPath); } else if (PassesFilter(e.FullPath)) { FileRemoved?.Invoke(e.FullPath); } }
/// <summary> /// проверяет папку на предмет изменений /// </summary> /// <param name="path">путь к папке</param> /// <returns>если содержимое папки изменилось возвращает true</returns> bool CheckDirectoryChange(string path) { var currentdirectorylist = InitDirectoryList(path); if (directoryList.Count < currentdirectorylist.Count) // если папку было добавлено { foreach (var item in currentdirectorylist) { if (!ContainsItem(directoryList, item)) { FolderAdded.Invoke(item); if (Synchronaizer.IsDisableChangeFolder) { System.IO.Directory.Delete(item.Path, true); FileRemoved.Invoke(item); currentdirectorylist.Remove(item); } } break; } directoryList = currentdirectorylist; fileList = InitFileList(path); return(true); } else if (directoryList.Count > currentdirectorylist.Count) // если папку было удалено { foreach (var item in directoryList) { if (!ContainsItem(currentdirectorylist, item)) { FolderRemoved.Invoke(item); break; } } directoryList = currentdirectorylist; fileList = InitFileList(path); return(true); } return(false); }
protected virtual void OnFolderRemoved(BookmarkFolderChangeEventArgs e) { FolderRemoved.Invoke(this, e); }