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);
        }
Beispiel #3
0
 protected virtual void OnFolderRemoved(BookmarkFolderChangeEventArgs e)
 {
     FolderRemoved.Invoke(this, e);
 }