Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Обход папок\файлов, доступ к которым запрещен системой!


Страницы:   1 2

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


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо