Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Лабораторная работа №7




Цель работы: познакомиться с понятием «каталог» («папка»). Изучить функции для поиска всех файлов с указанными характеристиками. Научиться применять полученные знания при написании программ.

Задание

 

Написать программу, которая для заданного каталога (папки) вычисляет ее суммарную длину всех объектов, находящихся в ней, и выводит эту информацию в файл с именем f_size.txt (обычный текстовый файл). Предполагается, что для хранения суммарной длины всех объектов в указанной папке достаточно переменной типа данных unsigned __int64.

 

1. Для получения 100% от числа баллов, отводимых на лабораторную работу, в качестве объектов, длины которых суммируются, должны поддерживаться как файлы, так и папки, причем уровень вложенности папок одной в другую не ограничивается.

2. Для получения 80% от числа баллов, отводимых на лабораторную работу, в качестве объектов, длины которых суммируются, должны поддерживаться как файлы, так и папки, причем предполагается, что вложенные папки не могут в свою очередь содержать вложенные каталоги (уровень вложения папок = 1).

3. Для получения 65% от числа баллов, отводимых на лабораторную работу, в качестве объектов, длины которых суммируются, должны поддерживаться только файлы.

 

Алгоритм работы программы (для задания максимальной сложности).

1. Вывести приглашение пользователю для ввода пути и имени выбранной папки.

2. Ввести имя папки с указанием полного пути к ней.

3. Запомнить текущий каталог.

4. Изменить текущий каталог на указанный.

5. Для текущего каталога выполнить следующие действия:

a) С помощью функций _findfirst и _findnext (их синтаксис изучить самостоятельно, используя справочную систему MSDN) найти имя очередного файла.

b) Если найденный файл не является каталогом (проверяется с помощью атрибутов файла, которые можно получить с помощью поля attrib структуры _finddata_t, указателем на которую является 2-ой аргумент функций _findfirst и _findnext), то к текущему значению суммы добавить длину найденного файла.

c) Если найденный файл является каталогом, то перейти в этот каталог и осуществить поиск файлов и каталогов в нем.

d) Когда функция findnext перестает возвращать имена новых найденных файлов, то программа должна создать в текущем каталоге файл с именем f_size.txt и записать в него суммарный размер всех файлов и каталогов, находящихся в нем, а затем осуществить переход в родительский каталог (если текущий каталог отличен от выбранного пользователем). Родительский каталог обозначается ”..”.

6. Когда найдена суммарная длина всех файлов и папок в указанном каталоге, программа должна перейти в каталог, путь к которому был запомнен в пункте 3.

7. В конце поиска необходимо вызвать функцию _findclose для освобождения ресурсов, используемых при поиске.

 

 




Поделиться с друзьями:


Дата добавления: 2017-01-14; Просмотров: 341; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.