|
Программирование >> Автоматически обновляемые приложения
; Л истинг 10.10. Получение свойств папки private void button4 Click(object sender, EventArgs e) { Получим информацию о свойствах папки П System - системный каталог (обычно C:\Windows); П Templates - каталог, В котором хранятся шаблоны документов. Обратите внимание, что в новой операционной системе Windows Vista изменились некоторые названия папок. Например, вместо названия Мой компьютер используется просто Компьютер. Вот еще небольшой список изменившихся названий. Сначала приводится старое стандартное название специальной папки, а затем следует новое расположение папки в Windows Vista: П Application Data - AppData\Roaming; П Cooi<:ies - \AppData\Roaming\Microsoft\Windows\Cookies; П Local Settings - \AppData\Local; П My Documents - \Documents; П NetHood - \AppData\Roaming\Microsoft\Windows\Network Shortcuts; П PrintHood - \AppData\Roaming\Microsoft\Windows\Printer Shortcuts; П Recent - \AppData\Roaming\Microsoft\Windows\Recent; П SendTo - \AppData\Roaming\Microsoft\Windows\SendTo; П Start Menu - \AppData\Roaming\Microsoft\Windows\Start Menu; П Templates - \AppData\Roaming\Microsoft\Windows\Templates. Хочу обратить особое внимание, что вместо папки Documents and Settings, в которой хранились данные пользователей системы, появилась новая папка Users. Поэтому, если в ваших проектах использовались жестко прошитые названия этой папки, то переработайте свой код. Кстати, я нашел неплохую статью на эту тему Finding the User Settings in Vista no адресу http: www.devsource.eom/c/a/Using-VS/Finding-the-User-Settings-in-Vista/. Свойства папки в листинге 10.10 приведен пример того, как можно узнать подробную информацию о свойствах папки. Размеры папки Если вам необходимо вычислить размер папки, включая подпапки, то придется написать небольшую процедуру (листинг 10.11), которая займется вычислениями размеров всех файлов в папке. Для удобства сделаем процедуру универсальной, чтобы она могла вычислять размеры как самой папки без учета файлов в подпайках, так и с учетом всех подпапок. IЛистинг 10И1. Получение размеров папки static long GetDirectorySize(System.10.Directorylnfo directory, bool includeSubdir) long totalSize = 0; Считаем все файлы System.10.FileInfo[] files = directory.GetFiles(); foreach (System.10.Fileinfо file in files) totalSize += file.Length; System.10.Directorylnfo dir = new System.10.Directorylnfo(@ c:\wutemp ); listBoxl.Items.Clear(); listBoxl.Items.Add( Проверка папки: + dir.Name); listBoxl.Items.Add( Родительекая папка: + dir.Parent.Name); listBoxl.Items.Add( Папка существует: ); listBoxl.Items.Add(dir.Exists.ToStringО); if (dir.Exists) listBoxl.Items.Add( Папка создана: ); listBoxl.Items.Add(dir.CreationTime.ToString()); listBoxl.Items.Add( Папка изменена: ); listBoxl.Items.Add(dir.LastWriteTime.ToString О); listBoxl.Items.Add( Время последнего доступа: ); listBoxl.Items.Add(dir.LastAccessTime.ToStringО); listBoxl.Items.Add( Атрибуты папки: ); listBoxl.Items.Add(dir.Attributes.ToString()); listBoxl.Items.Add( Папка содержит: + dir.GetFilesО .Length.ToStringО + файла ); Как написать свой Проводник? в принципе, на основе предыдущих советов вам под силу написать свой собственный Проводник, точнее его левую часть, в которой отображается древовидная структура папок (рис. 10.1). Для этого расположите на форме элемент управления TreeView И установите его свойство Dock в значение Fill. Далее добавьте код, приведенный в листинге 10.12. Считаем все подпапки if (includeSubdir) System.10.Directoryinfo[] dirs = directory.GetDirectories() ; foreach (System.10.Directoryinfo dir in dirs) totalSize += GetDirectorySize(dir, true); return totalSize; private void butFolderSize Click(object sender, EventArgs e) { this.Cursor = Cursors.WaitCursor; System.10.Directoryinfo dir = new System.10.Directoryinfo(@ d:\help ); textBoxl.Text = Общий размер: + GetDirectorySize(dir, true).ToString() + байт. ; this.Cursor = Cursors.Default; Bo время длительной операции обязательно переключайте указатель мыши, чтобы он имел вид так называемых песочных часов (waitCursor). В данном случае вычисление размера папки может занять значительное время и у пользователя возникнет ощущение, что программа просто зависла. Примечание Примеры работы с папками находятся в папке DirectoryDemo на прилагаемом диске.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |