- Код: Выделить всё
var
Form1: TForm1;
b : boolean;
implementation
{ TForm1 }
procedure TForm1.FindFile(dir, conffile:String);
Var fs : TSearchRec;
begin
findfirst(dir + '/*',faAnyFile,fs);
repeat
if (fs.Name='.') or (fs.Name='..') then continue;
if (fs.Name='dev') then continue;
if (fs.Name='home') then continue;
if (fs.Name='mnt') then continue;
if (fs.Attr and faDirectory) <> 0
then findfile(dir + '/' + fs.name, conffile);
if conffile = fs.Name
then begin
edit2.Text := dir + '/' + fs.Name;
b := true;
end;
if b then exit;
until findnext(fs) <> 0;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
b := false;
FindFile('', edit1.Text);
showmessage('поиск окончен');
end;
это все в принципе работает, но!
теперь собственно вопрос:
1.Я не просто так игнорирую папки home и mnt. Почему-то если искать и в этих каталогах, поиск файла дает ВСЕГДА отрицательный результат. Даже если искомый файл находится ну например в каталоге /etc.
Я грешил на то, что вся проблема в том, что в каталога home и mnt есть файлы с русскими буквами в названиях.
Однако, чуть позже выяснил, что поиск глючит, если еще искать в каталоге /dev Но в /dev кириллицей и не пахнет!
Уважаемый all,
подскажите в чем загвоздка?
кстати, запускаем программу под рутом