![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Блокировка папки после создания [D7, WinXP]
ANB © (2005-04-25 16:55:00)Создаю папку CreateDirectory, затем, не выходя из свое проги, пытаюсь удалить ее
- ничего не выходит и код ошибки не расшифровывается (1026).
lpFileOp.Wnd := 0;
lpFileOp.wFunc := FO_DELETE;
lpFileOp.pFrom := PChar(sSource);
lpFileOp.pTo := nil;
lpFileOp.fFlags := FOF_NOCONFIRMATION or FOF_NOCONFIRMMKDIR or FOF_NOERRORUI;
lpFileOp.fAnyOperationsAborted := False;
lpFileOp.hNameMappings := nil;
lpFileOp.lpszProgressTitle := 'TestSoft : Удаление файлов';
Err := SHFileOperation (lpFileOp);
if (Err <> 0) then begin
sErrMsg := SysErrorMessage(Err);
Result := 'Ошибка при удалении файла/папки "'
+ sSource
+ '" ('
+ IntToStr(Err) + ') "'
+ sErrMsg + '"';
end;
Но если выйти/зайти, то все удаляется. Похоже на блокировку папки (не закрыт хендл), только откуда она берется ?
alpet (2005-04-26 11:07:00) [21]Попробуй по шаблону создавать:
CreateDirectoryEx( '.', PChar (sSource), nil);
ANB (2005-04-26 09:25:00) [22]
> Вывод: Err := GetLastError, а не SHFileOperation.
- не, это я пробовал, грит, что нету ошибки. Видно, ошибка не OS. А может я зря пытаюсь удалять SHFileOperation ? Правда, он и пустую папку не удаляет . . . Может я с CreateDirectory намутил ?
Вот так делаю :
. Может права надо задать вместо nil ? Папка почему то получается с флагом ReadOnly.
if (not CreateDirectory(PChar(sSource), nil)) then begin
Err := GetLastError;
sErrMsg := SysErrorMessage(Err);
Result := 'Ошибка при создании папки "'
+ sSource
+ '" ('
+ IntToStr(Err) + ') "'
+ sErrMsg + '"';
end;
VMcL (2005-04-25 18:25:00) [23]>> ANB © (25.04.05 16:55)
> ничего не выходит и код ошибки не расшифровывается (1026).
Вероятно, потому что нужно почитать справку по SHFileOperation, где написано:
Return Value
Returns zero if successful, or nonzero otherwise.
Вывод: Err := GetLastError, а не SHFileOperation.