コード例 #1
0
ファイル: FilePanel.xaml.cs プロジェクト: userof/explorernet
        private void Navigate()
        {
            // Если директория - входим в неё
            if (lvFileList.SelectedItem is DirectoryCover)
            {
                //ListViewItem lvi = (ListViewItem)lvFileList.SelectedItem;
                //DirectoryCover cover = (DirectoryCover)lvi.Content;

                DirectoryCover cover = (DirectoryCover)lvFileList.SelectedItem;
                _BuildFileSystemView(cover.DirectoryElement);
            }
            // Если файл - запускаем
            else if (lvFileList.SelectedItem is FileCover)
            {
                FileCover cover = (FileCover)lvFileList.SelectedItem;
                //System.Diagnostics.Process process = new System.Diagnostics.Process();
                //process.StartInfo.WorkingDirectory =
                //    System.IO.Path.GetDirectoryName(cover.FileElement.FullName);
                //process.StartInfo.UseShellExecute = true;
                //process.StartInfo.FileName = cover.FileElement.FullName;
                //process.Start();

                //ExplorerNet.Tools.LastStartedFiles.LastStartedFilesManager lsfm =
                //    new Tools.LastStartedFiles.LastStartedFilesManager();
                //lsfm.AddlastStartedFile(cover.FileElement.FullName);
                ExplorerNet.Tools.FileStarter.Start(cover.FileElement.FullName);
            }
            // Если елемент родительской директории - создаём его
            else if (lvFileList.SelectedItem is ParentDirectoryCover)
            {
                ParentDirectoryCover cover = (ParentDirectoryCover)lvFileList.SelectedItem;
                _BuildFileSystemView(cover.ParentDirectoryElement);
            }
        }
コード例 #2
0
        private void btnSumCalculate_Click(object sender, RoutedEventArgs e)
        {
            if (data.GetType() == typeof(DirectoryCover))
            {
                if (CalculiatingState != CalculiatingStateKind.Working)
                {
                    DirectoryCover dCover = (DirectoryCover)data;
                    DirectoryInfo  di     = dCover.DirectoryElement;

                    //txtSize.Background = Brushes.White;

                    CalculiatorSize cSize = new CalculiatorSize();

                    cSize.UpdateFieleSum          += new CalculiatorSize.UpdateFieleSumEventHandler(cSize_UpdateFieleSum);
                    cSize.InvalidAccess           += new CalculiatorSize.InvalidAccessEventHandler(cSize_InvalidAccess);
                    cSize.ChangeCalculiatingState += new CalculiatorSize.ChangeCalculiatingStateEventHandler(cSize_ChangeCalculiatingState);

                    Thread thread = new Thread(cSize.Calculiate);
                    //thread.Priority = ThreadPriority.
                    thread.IsBackground = true;
                    thread.Start(di);
                }


                //long sum = CalculateSize(di);
                //txtSize.Text = SizeFileInString.GetSizeInStr(sum);
            }
        }
コード例 #3
0
ファイル: FilePanel.xaml.cs プロジェクト: userof/explorernet
        /// <summary>
        /// Создаёт отражение участка файловой системы
        /// </summary>
        /// <param name="directory"></param>
        private void _BuildFileSystemView(DirectoryInfo directory)
        {
            //Очищаем список
            //lvFileList.Items.Clear();
            lvFileList.ItemsSource = null;


            _currentDirectory = directory;

            List <CustomFileSystemCover> list = new List <CustomFileSystemCover>();

            //CustomFileSystemCover cover = null;

            //lvFileList.ItemContainerGenerator.StatusChanged +=
            //        delegate(Object sender, EventArgs e)
            //        {
            //            ListViewItem lvi = (ListViewItem)lvFileList.ItemContainerGenerator.ContainerFromItem(cover);
            //            if (lvi != null)
            //            {
            //                lvi.PreviewMouseLeftButtonDown += delegate(Object sender, MouseButtonEventArgs e)
            //                {
            //                    DragDrop.do
            //                }
            //            }

            //        };

            // Если у текущего каталога есть родительский каталог, создаём елемент, дающий возможность
            // перейти в родительский каталог
            if (directory.Parent != null)
            {
                ParentDirectoryCover cover = new ParentDirectoryCover(directory.Parent);
                list.Add(cover);
                //lvFileList.Items.Add(cover);
            }

            // Создаём елементы отражающие директории
            try
            {
                foreach (var dir in directory.GetDirectories())
                {
                    DirectoryCover cover = new DirectoryCover(dir);

                    list.Add(cover);

                    #region comments Этот вариант был исправлен на более правельный

                    //Получаем ListViewItem, когда он будет создан и подписываемся на его события
                    //lvFileList.ItemContainerGenerator.StatusChanged +=
                    //    delegate(Object sender, EventArgs e)
                    //    {
                    //        ListViewItem lvi = (ListViewItem)lvFileList.ItemContainerGenerator.ContainerFromItem(cover);
                    //        if (lvi != null)
                    //        {
                    //            lvi.AllowDrop = true;

                    //            //Список событий. Сделан чтобы не подписываться много раз на одно событие
                    //            List<string> eventList = null;
                    //            if (lvi.Tag == null)
                    //            {
                    //                eventList = new List<string>();
                    //                lvi.Tag = eventList;
                    //            }
                    //            else
                    //            {
                    //                eventList = (List<string>)lvi.Tag;
                    //            }

                    //Если события нет в списке, то подписываемся на него
                    //if (!eventList.Contains("DragEnter"))
                    //{
                    //    eventList.Add("DragEnter");
                    //    lvi.DragEnter += delegate(Object sender1, DragEventArgs e1)
                    //    {
                    //        if (e1.Effects == DragDropEffects.Move)
                    //        {
                    //            lvi.Opacity = 0.5;
                    //        }
                    //    };
                    //}

                    //Если события нет в списке, то подписываемся на него
                    //if (!eventList.Contains("DragLeave"))
                    //{
                    //    eventList.Add("DragLeave");
                    //    lvi.DragLeave += delegate(Object sender1, DragEventArgs e1)
                    //    {
                    //        lvi.Opacity = 1;
                    //    };
                    //}

                    //Если события нет в списке, то подписываемся на него
                    //if (!eventList.Contains("Drop"))
                    //{
                    //    eventList.Add("Drop");
                    //    lvi.Drop += delegate(Object sender1, DragEventArgs e1)
                    //    {
                    //        lvi.Opacity = 1;
                    //        DataObject dObj = (DataObject)e1.Data;

                    //        //Делаем не возможным обрабатывать Drop lvFileList
                    //        this.isListViewDroped = false;

                    //        if (dObj.GetDataPresent(typeof(List<CustomFileSystemCover>)))
                    //        {
                    //            // If the desired data format is present, use one of the GetData methods to retrieve the
                    //            // data from the data object.
                    //            List<CustomFileSystemCover> selectedList = dObj.GetData(typeof(List<CustomFileSystemCover>))
                    //                as List<CustomFileSystemCover>;

                    //            //MessageBox.Show(selectedList[0].Name);
                    //            List<FileSystemInfo> fsiList = new List<FileSystemInfo>();

                    //            foreach (var sl in selectedList)
                    //            {
                    //                if (sl.FileSystemElement.GetType() == typeof(DirectoryInfo))
                    //                {
                    //                    fsiList.Add(new DirectoryInfo(sl.FileSystemElement.FullName));
                    //                }
                    //                else if (sl.FileSystemElement.GetType() == typeof(FileInfo))
                    //                {
                    //                    fsiList.Add(new FileInfo(sl.FileSystemElement.FullName));
                    //                }
                    //                else
                    //                {
                    //                    new Exception("Type not support!");
                    //                }
                    //            }

                    //            DirectoryCover dc = (DirectoryCover)lvi.Content;


                    //            CopyWindow cw = new CopyWindow(fsiList, dc.FileSystemElement.FullName);
                    //            cw.ShowDialog();

                    //        }

                    //        //DragDrop.RemovePreviewDropHandler(lvFileList, lvFileList_Drop);
                    //    };
                    //}

                    //}
                    //};
                    #endregion //comments
                }
            }
            catch (Exception)
            {
                MessageBox.Show(LanguagesManager.GetCurrLanguage().FPIsNotAccess, "",
                                MessageBoxButton.OK, MessageBoxImage.Warning);
                this.Path = System.IO.Path.GetDirectoryName(this.Path);
                return;
            }

            // Создаём елементы отражающие файлы
            foreach (var file in directory.GetFiles())
            {
                FileCover cover = new FileCover(file);

                list.Add(cover);
                //lvFileList.Items.Add(cover);
            }

            //list.Sort(new NameUpSorter());
            SortingManager.Sort(list, SortingKind.NameUp);

            lvFileList.ItemsSource = list;

            // Задаём в текстовом поле текущий путь
            txtPath.Text = directory.FullName;

            this.watcher.Path = directory.FullName;
            //this.watcher.Changed += new FileSystemEventHandler(watcher_Changed);
            this.watcher.EnableRaisingEvents = true;
        }
コード例 #4
0
ファイル: FilePanel.xaml.cs プロジェクト: userof/explorernet
        //private static Point dropPoint;

        private void ListViewItem_Drop(Object sender, DragEventArgs e)
        {
            // var p = e.GetPosition(this);

            // int mov = 55;
            // bool xM = p.X > dropPoint.X - mov;
            // bool xB = p.X < dropPoint.X + mov;
            // bool yM = p.Y > dropPoint.Y - mov;
            // bool yB = p.Y < dropPoint.Y + mov;

            // bool rt = (xM && xB && yM && yB);

            // if (rt)  return;

            //SystemParameters.mi

            ListViewItem lvi = (ListViewItem)sender;

            if (lvi.Content != null)
            {
                object content = lvi.Content;
                lvi.Opacity = 1;

                //var fff = e.Data.GetDataPresent(DataFormats.FileDrop);

                if (content.GetType() == typeof(DirectoryCover))
                {
                    if (e.Data.GetDataPresent(DataFormats.FileDrop))
                    {
                        string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);

                        List <FileSystemInfo> fsiList = new List <FileSystemInfo>();
                        foreach (var f in files)
                        {
                            FileSystemInfo fsi = null;

                            if (Directory.Exists(f))
                            {
                                fsi = new DirectoryInfo(f);
                            }
                            else if (File.Exists(f))
                            {
                                fsi = new FileInfo(f);
                            }
                            else
                            {
                                throw new Exception("Its not a directory and not a file!");
                            }

                            fsiList.Add(fsi);
                        }
                        isListViewDroped = false;
                        DirectoryCover dc = (DirectoryCover)lvi.Content;

                        CopyWindow cw = new CopyWindow(fsiList, dc.FileSystemElement.FullName);
                        cw.ShowDialog();
                        //string[] files = (string[])dObj.GetData(DataFormats.FileDrop);
                        // MessageBox.Show(files.ToString());
                    }
                }
            }



            //ListViewItem lvi = (ListViewItem)sender;

            //if (lvi.Content != null)
            //{
            //    object content = lvi.Content;
            //    if (content.GetType() == typeof(DirectoryCover))
            //    {
            //        if (e.Effects == DragDropEffects.Move)
            //        {
            //            lvi.Opacity = 1;
            //            DataObject dObj = (DataObject)e.Data;

            //            //Делаем не возможным обрабатывать Drop lvFileList
            //            this.isListViewDroped = false;

            //            if (dObj.GetDataPresent(typeof(List<CustomFileSystemCover>)))
            //            {
            //                // If the desired data format is present, use one of the GetData methods to retrieve the
            //                // data from the data object.
            //                List<CustomFileSystemCover> selectedList = dObj.GetData(typeof(List<CustomFileSystemCover>))
            //                    as List<CustomFileSystemCover>;

            //                //MessageBox.Show(selectedList[0].Name);
            //                List<FileSystemInfo> fsiList = new List<FileSystemInfo>();

            //                foreach (var sl in selectedList)
            //                {
            //                    if (sl.FileSystemElement.GetType() == typeof(DirectoryInfo))
            //                    {
            //                        fsiList.Add(new DirectoryInfo(sl.FileSystemElement.FullName));
            //                    }
            //                    else if (sl.FileSystemElement.GetType() == typeof(FileInfo))
            //                    {
            //                        fsiList.Add(new FileInfo(sl.FileSystemElement.FullName));
            //                    }
            //                    else
            //                    {
            //                        new Exception("Type not support!");
            //                    }
            //                }
            //                DirectoryCover dc = (DirectoryCover)lvi.Content;


            //                CopyWindow cw = new CopyWindow(fsiList, dc.FileSystemElement.FullName);
            //                cw.ShowDialog();
            //            }
            //        }
            //    }
            //}
        }