Программирование >>  Автоматически обновляемые приложения 

1 ... 105 106 107 [ 108 ] 109 110 111 ... 170


; Л истинг 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 на прилагаемом диске.



1 ... 105 106 107 [ 108 ] 109 110 111 ... 170

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика