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); }
// 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); }
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); }
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); }
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); }
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); } }