![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Обход папок\файлов, доступ к которым запрещен системой!
Ghost del vonte © (2011-03-16 08:36:00)Доброго времени суток!
Столкнулся с проблемой: моя программа ищет по всему диску текстовые файлы, чтобы потом работать с ними! Так вот, как только она натыкается на файл или папку, доступ к которой закрыт системой - ошибка! ( Access Denied ).... скажите, как обойти такие файлы и папки? Вот код поиска
( функция позаимствована из книги А.Я.Архангельского, огромная ему благодарность! (переделана под конкретный случай), посоветуйте как ее дополнить, чтобы избежать этих файлов....
procedure ViewDir(SDir: string);
var SR: TSearchRec;
ires: integer;
CurDir, S: string;
begin
CurDir := GetCurrentDir;
ChDir(SDir);
ires := FindFirst('*.*', faAnyFile, SR);
while ires = 0 do
begin
Application.ProcessMessages;
if (SR.Name <> '.') and (SR.Name <> '..') and (SR.Name <> '...') and (SR.Name <> '7154~1')
then begin
if ((SR.Attr and faDirectory) <> 0) then
ViewDir(SR.Name) else begin
S:= AnsiUpperCase(ExtractFileExt(SR.Name));
if (S = '.TXT') then
begin
DList.Add(GetCurrentDir+'\'+SR.Name);
fmLE.Panel3.Caption:= SR.Name;
fmLE.Panel3.Update;
end;
end;
end;
ires := FindNext(SR)
end;
FindClose(SR);
fmLE.Panel3.Caption:= '';
ChDir(CurDir);
end;
Заранее огромная благодарность!
Плохиш (2011-03-16 09:54:00) [21]
> CurDir := GetCurrentDir;
> ChDir(SDir);
>
Дерьмокодер-маразматик.
PS. Странно, почему только до трëх точек в имени проверяется?
Ghost del vonte (2011-03-16 09:54:00) [22]Обойти, значит пропускать эти файлы или папки))
> brother © (16.03.11 09:26) [2]
>
> > (переделана под конкретный случай)
>
>
> > (SR.Name <> '7154~1')
>
> Жестко!)
7154~1 - это глюк в Висте, она создает папки, которые невозможно удалить!
brother (2011-03-16 09:46:00) [23]а мыж не знаем, чего там РЕАЛЬНО ищет автор топика? ;)
Anatoly Podgoretsky (2011-03-16 09:45:00) [24]Тогда ничего делать не надо, они избегут
brother (2011-03-16 09:33:00) [25]> Что значит обойти
> посоветуйте как ее дополнить, чтобы избежать этих файлов....
я правильно понимаю?)
Anatoly Podgoretsky (2011-03-16 09:31:00) [26]> Ghost del vonte (16.03.2011 08:36:00) [0]
Что значит обойти, плевать на систему безопасности, мне все можно?
brother (2011-03-16 09:26:00) [27]> (переделана под конкретный случай)
> (SR.Name <> '7154~1')
Жестко!)
Dennis I. Komarov (2011-03-16 09:22:00) [28]try/except