![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Что за ошибка "Отказано в доступе"?
cyborg © (2008-11-10 10:08:00)Есть процедура:
procedure TTests.LoadTests(const aDir: String);
var
vSR: TSearchRec;
vLen: Integer;
begin
try
if FindFirst(aDir + '*.*', faAnyFile, vSR) = 0 then
repeat
if ((vSR.Attr and faDirectory) = 0) then
begin
vLen := Length(FItems);
SetLength(FItems, vLen + 1);
Items[vLen] := TTest.Create(Self, aDir + vSR.Name);
end;
until FindNext(vSR) <> 0;
except
Items := nil;
raise;
end;
Констуктор TTest'а имеет примерно такой вид:
constructor TTest.Create(const aOwner: TTests; const aName: String);
var
vList: TStringList;
begin
inherited Create;
...
vList := TStringList.Create;
try
vList.LoadFromFile(aName);
...
finally
vList.Free;
end;
end;
На строчке vList.LoadFromFile(aName); возникает ошибка: "Cannot open file "C:\TATYANAM\ConTEXT\Поисковые запросы (тексты)". Отказано в доступе". Причем эта ошибка возникает только у одного пользователя, у остальных все нормально. С чем может быть связана эта ошибка и как ее избежать?
Anatoly Podgoretsky (2008-11-10 11:15:00) [1]> cyborg (10.11.2008 10:30:02) [2]
А ты не запрещай, ты поиск то разреши, а запрети чтение/запись и FindFirst у тебя заработает.
Rouse_ (2008-11-10 10:53:00) [2]
> Пробовал запретить права к папке, FindFirst просто не находит
> ни одного файла.
Если поднят эксепшен на LoadFromFile то до FindFirst дойти исполнение и не должно. Запрети в безопасности доступ на чтение к файлу, путь к которому храниться в переменной aName и ошибка воспроизведется.
clickmaker (2008-11-10 10:50:00) [3]> "Cannot open file "C:\TATYANAM\ConTEXT\Поисковые запросы
> (тексты)". Отказано в доступе".
атрибуты какие у этого файла?
и права доступа?
cyborg (2008-11-10 10:30:00) [4]Я бы сменил, но нужно это объяснить пользователю по почте. У себя я повторить эту ошибку не смог. Пробовал запретить права к папке, FindFirst просто не находит ни одного файла. Может быть действительно какая-то программа запрещает доступ.
Anatoly Podgoretsky (2008-11-10 10:15:00) [5]> cyborg (10.11.2008 10:08:00) [0]
Или предоставь права или смени папку, с должными правами. Стоит также проверить не стоит ли какая то приблуда, ограничиваящая доступ.