Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Веб-программирование > Perl
Перезагрузить страницу Работа с файлами
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
limeacid limeacid вне форума
Новичок
 
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 23.02.2008
По умолчанию 23.02.2008, 02:50

Дорогие товарищи помогите реализовать такую программу:

Удаление файлов с указанным префиксом и с максимальными размерами, пока общий размер остающихся файлов не станет меньше заданного числа.
Ответить с цитированием
  (#2 (permalink)) Старый
pr10 pr10 вне форума
Новичок
 
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 29.02.2008
По умолчанию 01.03.2008, 00:26

Где-то так:


Код:
#!/usr/bin/perl

use strict;

my $pref = 'pref_'; #Префикс файлов
my $limit_volume = 1024; #Лимит объема всех файлов
my $dir = '/home/files';

opendir(DIR, $dir);
my @files = grep { /^$pref_.+$/ } readdir(DIR); #Получаем список всех файлов из которого будем производить удаление
closedir(DIR);

my @s_files = (); #Массив для хешей файл-объем

my $count_volume = 0; #Объем всех файлов

map { 
    my $volume = -s "$dir/$_"; #Объем текущего файла
    $count_volume += $volume; #Прибавляем к общему объему
    push( @s_files, { name => $_, volume => $volume } ); #Сохраняем хеш имя-объем в массиве
} @files; #Перебираем файлы

my @sort_s_files = sort { $a->{volume} <=> $b->{volume} } @s_files; #Сортируем массив по объему файлов

#Удаляем файлы пока объем остающихся файлов больше $limit_volume
while ( $count_volume > $limit_volume ) {
    my $ref_file = shift( @sort_s_files ); #Удаляем самый большой файл из массива
    unlink( $dir . '/' . $ref_file->{name} ); #Удаляем файл с диска
    $count_volume -= $ref_file->{volume}; #Вычитаем объем удаленного файла
}
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с файлами Вячеслав1977 С/С++ 0 11.10.2011 09:22
Работа с файлами в С++ AlexKogot Вопросы начинающих программистов 4 30.08.2011 21:51
Работа с файлами в VB Demina_Kseny Visual Basic 0 27.05.2011 21:14
работа с файлами Natashka89 Prolog 3 27.05.2011 17:30
Работа с файлами Серега81 Вопросы начинающих программистов 1 26.05.2011 12:19
Работа с файлами yuliyayuliya Вопросы начинающих программистов 3 22.03.2011 22:15
Работа с wav-файлами vadim_gluzke .NET 0 19.02.2011 20:51
работа с файлами angelllvika Pascal 0 22.05.2010 22:31
Работа с файлами NOCaut Prolog 1 18.04.2010 00:45
Работа с dbf файлами Inna_r Delphi 1 27.02.2006 15:45
Работа с *.ini файлами Sane]{ Visual Basic 2 05.12.2005 03:45
ATL и работа с файлами Fireworm Visual C++ 1 28.07.2003 18:54



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов