Beispiel #1
0
        /// <summary>
        /// Предоставляет размер в единицах, зависящих от размера
        /// </summary>
        /// <param name="bytes"></param>
        /// <returns></returns>
        public static string GetSizeInStr(long bytes)
        {
            const int scale = 1024;

            //string[] orders = new string[] { Properties.Resources.GB,
            //    Properties.Resources.MB, Properties.Resources.KB,
            //    Properties.Resources.Bytes };

            OneLanguage lang = LanguagesManager.GetCurrLanguage();

            string[] orders = new string[] { lang.SFISGB,
                                             lang.SFISMB, lang.SFISKB, lang.SFISBytes };

            //OneLanguage lang = new OneLanguage();
            //lang.ResourceDictionary = new System.Windows.ResourceDictionary();
            //lang.ResourceDictionary.Source = new Uri("\\Languages\\en.xaml", UriKind.Relative);

            //string[] orders = new string[] { lang.SFISGB,
            //    lang.SFISMB, lang.SFISKB, lang.SFISBytes };

            long max = (long)Math.Pow(scale, orders.Length - 1);

            foreach (string order in orders)
            {
                if (bytes > max)
                {
                    return(string.Format("{0:##.##} {1}", decimal.Divide(bytes, max), order));
                }

                max /= scale;
            }
            return("0 " + lang.SFISBytes);
            //return "0 " + Properties.Resources.Bytes;
        }
Beispiel #2
0
        public static StackPanel GetSizeInStrWPF(long bytes)
        {
            StackPanel sp = new StackPanel();

            sp.Orientation = Orientation.Horizontal;
            TextBlock tbSize = new TextBlock();
            TextBlock tbAttr = new TextBlock();

            tbAttr.Margin = new System.Windows.Thickness(5, 0, 0, 0);
            sp.Children.Add(tbSize);
            sp.Children.Add(tbAttr);

            const int scale = 1024;

            OneLanguage lang = LanguagesManager.GetCurrLanguage();

            string[] orders = new string[] { "SFISGB",
                                             "SFISMB", "SFISKB", "SFISBytes" };


            long max = (long)Math.Pow(scale, orders.Length - 1);

            foreach (string order in orders)
            {
                if (bytes > max)
                {
                    tbSize.Text = string.Format("{0:##.##}", decimal.Divide(bytes, max));
                    //tbAttr.Text = order;

                    tbAttr.SetResourceReference(TextBlock.TextProperty, order);

                    return(sp);
                }


                max /= scale;
            }
            tbSize.Text = "0";
            tbAttr.SetResourceReference(TextBlock.TextProperty, "SFISBytes");
            //tbAttr.Text = lang.SFISBytes;


            return(sp);

            //return "0 " + lang.SFISBytes;
        }
Beispiel #3
0
        /// <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;
        }
Beispiel #4
0
        /// <summary>
        /// Заполняем элементы управления данными
        /// </summary>
        private void ShowDriveData()
        {
            DriveData driveData = new DriveData(drive);

            txtSize.Text = driveData.LongSize;

            try
            {
                pbSize.Maximum = driveData.MaximumSize;
                pbSize.Value   = driveData.MaximumSize -
                                 driveData.AvailableFreeSpace;
            }
            catch (Exception)
            {
                //pbSize.MaxWidth = 300;
            }

            imgDriveType.Source = driveData.DriveIcon;

            //txtInfo.Text = string.Format("name:{0} type:{1}",
            //    drive.Name[0].ToString(), drive.DriveType);
            txtDriveLabel.Text = driveData.VolumeLabel;
            txtDriveName.Text  = driveData.Drive.Name[0].ToString();
            txtDriveType.Text  = driveData.Drive.DriveType.ToString();

            if (!driveData.Drive.IsReady)
            {
                //txtSize.Text = Properties.Resources.TheDriveIsNotReady;
                txtSize.Text = LanguagesManager.GetCurrLanguage().DDDriveIsNotReady;
            }

            //if (drive.IsReady)
            //{
            //    string totalShort = SizeFileInString.GetSizeInStr(drive.TotalSize);
            //    string totalLong = drive.TotalSize.ToString();

            //    string availableShort = SizeFileInString.GetSizeInStr(drive.AvailableFreeSpace);
            //    string availableLong = drive.AvailableFreeSpace.ToString();

            //    txtSize.Text = string.Format("Free: {0} from {1} ({2} from {3})", availableShort, totalShort, availableLong, totalLong);

            //    pbSize.Maximum = drive.TotalSize;

            //    try
            //    {
            //        pbSize.Value = drive.TotalSize - drive.AvailableFreeSpace;
            //    }
            //    catch (Exception)
            //    {

            //    }

            //    txtInfo.Text = string.Format("name:{0} label:{1} type:{2}",
            //        drive.Name[0].ToString(), drive.VolumeLabel, drive.DriveType);

            //}
            //else
            //{
            //    txtInfo.Text = string.Format("name:{0} type:{1}",
            //        drive.Name[0].ToString(), drive.DriveType);
            //    txtSize.Text = "The drive is not read";
            //}

            //switch (drive.DriveType)
            //{
            //    case DriveType.CDRom:
            //        imgDriveType.Source = new BitmapImage(new Uri("/Icons/drive_cdrom.ico", UriKind.Relative));
            //        break;
            //    case DriveType.Fixed:
            //        imgDriveType.Source = new BitmapImage(new Uri("/Icons/drive_fixed.ico", UriKind.Relative));
            //        break;
            //    case DriveType.Network:
            //        imgDriveType.Source = new BitmapImage(new Uri("/Icons/drive_network.ico", UriKind.Relative));
            //        break;
            //    case DriveType.NoRootDirectory:
            //        break;
            //    case DriveType.Ram:
            //        break;
            //    case DriveType.Removable:
            //        imgDriveType.Source = new BitmapImage(new Uri("/Icons/drive_removable.ico", UriKind.Relative));
            //        break;
            //    case DriveType.Unknown:
            //        imgDriveType.Source = new BitmapImage(new Uri("/Icons/drive_unknown.ico", UriKind.Relative));
            //        break;
            //    default:
            //        break;
            //}
        }