Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.08.2016, 21:15   #11
Replicant
Форумчанин
 
Аватар для Replicant
 
Регистрация: 17.08.2009
Сообщений: 139
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Каких не хватает? Так надо смотреть, что возвращает функция удаления/гетластеррор/логи и т.д.
В первом посте писал гетластеррор=6, при этом руками удаляется без проблем, значит файл не открыт каким-либо приложением.

Последний раз редактировалось Replicant; 28.08.2016 в 21:17.
Replicant вне форума Ответить с цитированием
Старый 28.08.2016, 21:50   #12
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Я вам ответил, что за ошибка 6. А значит проблема в коде. И да, что значит "ручками"? Эксплорер? Тотал коммандер? С юзерскими правами? Админскими? уац включен? Удаление "ручками" идет через унц путь? ...
p51x вне форума Ответить с цитированием
Старый 28.08.2016, 22:29   #13
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Цитата:
if SearchRec.Attr <> faArchive then
Было ведь уже пояснение про то, как не нужно проверять атрибуты http://programmersforum.ru/showthread.php?t=292744
И атрибут "архивный" не исключает наличие атрибута "только чтение", т.е. проверять нужно не его, а faReadOnly
Код:
if (SearchRec.Attr and faReadOnly )  = faReadOnly then //какой-нибудь атрибут файла, но не readonly
Также полезно ознакомится с апишной ф-ей, которая вызывается дельфийской обёрткой https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx
Особенно полезно прочитать ремарки к ней
Цитата:
...The following list identifies some tips for deleting, removing, or closing files:
To delete a read-only file, first you must remove the read-only attribute.
To delete or rename a file, you must have either delete permission on the file, or delete child permission in the parent directory.
To recursively delete the files in a directory, use the SHFileOperation function.
To remove an empty directory, use the RemoveDirectory function.
To close an open file, use the CloseHandle function...
eoln вне форума Ответить с цитированием
Старый 29.08.2016, 06:34   #14
Replicant
Форумчанин
 
Аватар для Replicant
 
Регистрация: 17.08.2009
Сообщений: 139
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Я вам ответил, что за ошибка 6. А значит проблема в коде. И да, что значит "ручками"? Эксплорер? Тотал коммандер? С юзерскими правами? Админскими? уац включен? Удаление "ручками" идет через унц путь? ...
На все эти вопросы я уже дал ответ, какой смысл очередной раз это писать? За код ошибки спасибо, это помогло разобраться.

Цитата:
Сообщение от eoln Посмотреть сообщение
И атрибут "архивный" не исключает наличие атрибута "только чтение", т.е. проверять нужно не его, а faReadOnly
Код:
if (SearchRec.Attr and faReadOnly )  = faReadOnly then //какой-нибудь атрибут файла, но не readonly
Проблема действительно была с атрибутами, но заработало не после проверки на чтение, а после сброса атрибутов у файла, который не удалился, после чего следует повторная попытка удаления.
Всем спасибо!
Replicant вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка при удалении компонента Putin-mode Общие вопросы Delphi 18 24.01.2012 23:28
Ошибка при удалении из БД!!! Delphi 7. NuR1k БД в Delphi 2 21.08.2010 19:19
С++. Ошибка при удалении последней строки из файла _Dis_ Помощь студентам 12 28.08.2009 21:33
ошибка при удалении символа Virus191288 Общие вопросы Delphi 13 15.08.2009 14:50
Ошибка при удалении... JRcoker Общие вопросы Delphi 8 29.07.2008 22:53