Добрый день! Надо написать утилитку на работу с файлами, но никак не получается ... Вопрос в следующем: как имея адрес файла получить его "SearchRec", в частности Attr... заранее благодарен.
У тебя GetDir возвращает текущую директорию... ГДЕ? На каком диске? Это и указывается первым параметром процедуры... При передаче 0 ты получишь текущую папку на диске, с которого запускалась программа, чтобы получить это для D:, надо передать 4...
Хм... Так тебе что, рекурсивный поиск по всему диску с проверкой всех файлов, надо? Тогда поправляй процедуры вот так:
// здесь readln-ы я убрал, чтоб не щелкать по enter-у постоянно... function ifread(const str:string):boolean; var f: file; begin ifread:=false; if not ifdir(str) then begin assign(f, str); // Почему у тебя была СТРОКА 'str', а не ее содержимое? {$I-} reset(f); {$I+} if IOResult <> 0 then begin writeln('-', str); end else begin ifread := true; writeln('+', str); end; end; end;
procedure getunread(const fw: string); var sr: SearchRec; begin ifread(fw); chdir(fw);
FindFirst('*.*', AnyFile, sr); while DosError = 0 do begin
if (sr.name <> '.') and (sr.name <> '..') then begin
if (sr.attr and directory = directory) then begin getunread(fw + sr.name + slash); end else ifread(fw + getname(sr));