Здравствуйте, кто может мне помочь? Проблема в том, что мне нужно, чтобы программа показывала размер всех файлов маски “.mp3” в одной директории в мегабайтах. Как можно это реализовать?
FindFirst/FindNext в помощь:
uses dos;(учти, что название папки должно быть в формате 8.3)...
function get_size(path, mask: string): longint;
var
sr: searchrec;
size: longint;
begin
size := 0;
findfirst(path + mask, anyfile, sr);
while doserror = 0 do begin
size := size + sr.size;
findnext(sr);
end;
get_size := size;
end;
begin
writeln('start');
writeln(get_size('F:\MyDir\', '*.mp3') / sqr(1024) :6 :2, ' Mb');
end.
uses dos;(учти, что название папки должно быть в формате 8.3)...
function get_size(path, mask: string): longint;
var
sr: searchrec;
size: longint;
begin
size := 0;
findfirst(path + mask, anyfile, sr);
while doserror = 0 do begin
size := size + sr.size;
findnext(sr);
end;
get_size := size;
end;
begin
writeln('start');
writeln(get_size('F:\MyDir\', '*.mp3') / sqr(1024) :6 :2, ' Mb');
end.
Значит, тебе сюда: http://forum.pascal.net.ru/index.php?showtopic=4537
(хотя где там у меня может быть деление на ноль, при условии что CRT не подключался, я не знаю, а догадываться, где это произошло - не собираюсь... На моей машине отработало нормально.)
Все решил проблему, она была в компиляторе