Esempio n. 1
0
        public void ShowPreview(Models.GlimpseItem item)
        {
            using (var sf = ShellFolder.FromParsingName(item.FullPath))
            {
                this.Thumbnail = sf.Thumbnail.ExtraLargeBitmapSource;
                this.DriveName = sf.GetDisplayName(DisplayNameType.Default);
            }

            DriveInfo di = new DriveInfo(item.FullPath);

            this.FreeBytes  = di.TotalFreeSpace;
            this.TotalBytes = di.TotalSize;

            this.FreeSpaceRatio = (di.TotalFreeSpace / (double)di.TotalSize);
        }
Esempio n. 2
0
        // DataContext для ListView
        // что делать с типом коллекции

        public static ObservableCollection <MainViewModel.ListItem> UpdateCollection(string Path)
        {
            // Пока чо здесь. Попробовать где-то в другом месте. Если это вообще имеет смысл.
            ObservableCollection <MainViewModel.ListItem> ListModel = new ObservableCollection <MainViewModel.ListItem>();

            // Должны быть папки и файлы
            Trace.WriteLine(Path);
            using (var Folder = (ShellFolder)ShellFolder.FromParsingName(Path))
            {
                foreach (var item in Folder)
                {
                    ListModel.Add(new MainViewModel.ListItem(item));
                }
            }
            return(ListModel);
        }
Esempio n. 3
0
        private TreeViewItem AddComputer( )
        {
            StackPanel panel = new StackPanel();

            panel.Orientation = Orientation.Horizontal;
            IKnownFolder iKnownFolder = KnownFolders.Computer;
            ShellObject  shellObject  = ShellFolder.FromParsingName(iKnownFolder.ParsingName);
            Image        image        = new Image();

            image.Source = shellObject.Thumbnail.SmallBitmapSource;
            image.Width  = Height = 16;
            panel.Children.Add(image);
            TagInfo info = new TagInfo(shellObject.Name, iKnownFolder.Path);

            TextBlock textBlock = new TextBlock();

            textBlock.Text = info.Name;
            panel.Children.Add(textBlock);
            TreeViewItem item = new TreeViewItem();

            item.Header     = panel;
            item.Tag        = info;
            item.IsSelected = true;
            dirView.Items.Add(item);
            item.IsExpanded = true;

            foreach (var obj in iKnownFolder)
            {
                if (Directory.Exists(obj.ParsingName))
                {
                    item.Items.Add(CreatTreeViewItem(new TagInfo(obj.Name, obj.ParsingName)));
                }
            }
            //System.IO.DriveInfo[] disk = System.IO.DriveInfo.GetDrives();
            //foreach (System.IO.DriveInfo di in disk)
            //{
            //    if (di.DriveType != DriveType.CDRom && di.DriveType != DriveType.Network)
            //    {
            //        string name = "(" + di.Name.Substring(0, 2) + ")";
            //        string lable = (di.VolumeLabel == "") ? "Local Disk" : di.VolumeLabel;
            //        item.Items.Add(CreatTreeViewItem(new TagInfo(lable + name, di.RootDirectory.FullName)));
            //    }
            //}


            return(item);
        }
Esempio n. 4
0
        private TreeViewItem AddLibraries()
        {
            StackPanel   panel        = new StackPanel();
            IKnownFolder iKnownFolder = KnownFolders.UsersLibraries;
            ShellObject  shellObject  = ShellFolder.FromParsingName(iKnownFolder.ParsingName);

            panel.Orientation = Orientation.Horizontal;
            Image image = new Image();

            image.Source = shellObject.Thumbnail.SmallBitmapSource;
            image.Width  = image.Height = 16;
            panel.Children.Add(image);
            TagInfo   info      = new TagInfo(shellObject.Name, iKnownFolder.Path);
            TextBlock textBlock = new TextBlock();

            textBlock.Text = info.Name;
            panel.Children.Add(textBlock);
            TreeViewItem item = new TreeViewItem();

            item.Header = panel;
            item.Tag    = info;
            dirView.Items.Add(item);
            item.IsExpanded = true;
            //item.Items.Add(CreatTreeViewItem(new TagInfo("Documents", Environment.GetFolderPath(Environment.SpecialFolder.Personal))));
            //item.Items.Add(CreatTreeViewItem(new TagInfo("Music", Environment.GetFolderPath(Environment.SpecialFolder.MyMusic))));
            //item.Items.Add(CreatTreeViewItem(new TagInfo("Pictures", Environment.GetFolderPath(Environment.SpecialFolder.MyPictures))));
            //item.Items.Add(CreatTreeViewItem(new TagInfo("Videos", Environment.GetFolderPath(Environment.SpecialFolder.MyVideos))));
            //item.Items.Add(CreatTreeViewItem(new TagInfo("Downloads", "")));
            foreach (var shellObj in iKnownFolder)
            {
                try
                {
                    ShellLibrary shellLibrary = ShellLibrary.Load(shellObj.Name, true);
                    if (shellLibrary.Count > 0 && Directory.Exists(shellLibrary.DefaultSaveFolder))
                    {
                        item.Items.Add(CreatTreeViewItem(new TagInfo(shellObj.Name, shellLibrary.DefaultSaveFolder)));
                    }
                }
                catch
                {
                }
            }
            return(item);
        }
Esempio n. 5
0
        static string FindNonLocalizedName(string path)
        {
            string result = string.Empty;

            string[] directories = Directory.GetDirectories(Path.GetDirectoryName(path));
            for (int i = 0; i < directories.Length; i++)
            {
                var folder = ShellFolder.FromParsingName(directories[i]);
                if (folder != null)
                {
                    string localizedName1 = Path.GetFileName(path);
                    string localizedName2 = ShellFolder.FromParsingName(directories[i]).Name;
                    if (string.Equals(localizedName1, localizedName2,
                                      StringComparison.InvariantCultureIgnoreCase))
                    {
                        result = Path.GetFileName(directories[i]);
                        break;
                    }
                }
            }

            return(result);
        }
Esempio n. 6
0
        public void ShowPreview(Models.GlimpseItem item)
        {
            using (var sf = ShellFolder.FromParsingName(item.FullPath))
            {
                this.Thumbnail  = sf.Thumbnail.ExtraLargeBitmapSource;;
                this.Foldername = sf.GetDisplayName(DisplayNameType.Default);
            }

            var di = new DirectoryInfo(item.FullPath);

            this.CreationTime = di.CreationTime;

            if (!folderStatsCache.TryGetValue(item.FullPath, out this.currentFolderStats))
            {
                this.currentFolderStats = new FolderStats(di);
                this.currentFolderStats.StartCalculation();
                this.folderStatsUpdateTimer = new Timer((state) =>
                {
                    UpdateFolderStats();
                }, state: null, dueTime: 0, period: 500);

                folderStatsCache.Add(item.FullPath, currentFolderStats);
            }
        }