Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> SHFileOperation ошибка 1026 при удалении каталогов, SHFileOperation ошибка 1026 
:(
    Опции темы
ajs
  Дата 7.6.2013, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 30.3.2007

Репутация: нет
Всего: нет



На Windows XP (на 7-ке вроде работало, но сейчас проверить не могу) функция SHFileOperation не хочет удалять каталоги (пустые, если есть файлы пока не проверял), файлы удаляет. Delphi XE2
Функция:
Код

Function DeleteToRecycleBin(WindowHandle: HWND; Filename: string; Confirm: Boolean): Boolean;
  Var
    SH: TSHFILEOPSTRUCT ;
    EC: Integer ;

  Begin
    FillChar(SH, SizeOf(SH), 0) ;
    With SH do
      Begin
        Wnd    := WindowHandle ;
        wFunc  := FO_DELETE ;
        pFrom  := PChar(Filename+#0#0) ;
        fFlags := FOF_SILENT or FOF_NOERRORUI ;
        If GlobalRecycleBin
          Then
            fFlags := fFlags or FOF_ALLOWUNDO ;
        If not Confirm
          Then
            fFlags := fFlags or FOF_NOCONFIRMATION
      End ;
    EC := SHFileOperation(SH) ;
    Result := EC = 0 ;
    WriteToLog(llDebug,'Delete '+Filename+IfThen(GlobalRecycleBin,' to recycle bin','')+' with result '+IntToStr(EC)+'.') ;
    If EC = 1026
      Then
        Begin
          WriteToLog(llDebug,'Error '+IntToStr(EC)+' try Delete without Trailing Path Delimiter.') ;
          Result := DeleteToRecycleBin(WindowHandle, ExcludeTrailingPathDelimiter(Filename), Confirm) ;
        End ;
  End ;


Лог:
Код

  06-06-2013 22:21:33.890 Delete C:\ProgramData\Team MediaPortal\MediaPortal\Thumbs\MPTVSeriesBanners\bolts & blip\-langen-graphical\ to recycle bin with result 1026.
  06-06-2013 22:21:33.890 Error 1026 try Delete without Trailing Path Delimiter.
  06-06-2013 22:21:38.906 Delete C:\ProgramData\Team MediaPortal\MediaPortal\Thumbs\MPTVSeriesBanners\bolts & blip\-langen-graphical to recycle bin with result 5.
  06-06-2013 22:21:38.906 Delete C:\ProgramData\Team MediaPortal\MediaPortal\Thumbs\MPTVSeriesBanners\bolts & blip\-langen-posters\ to recycle bin with result 1026.
  06-06-2013 22:21:38.906 Error 1026 try Delete without Trailing Path Delimiter.
  06-06-2013 22:21:43.906 Delete C:\ProgramData\Team MediaPortal\MediaPortal\Thumbs\MPTVSeriesBanners\bolts & blip\-langen-posters to recycle bin with result 5.
  06-06-2013 22:21:43.921 Delete C:\ProgramData\Team MediaPortal\MediaPortal\Thumbs\MPTVSeriesBanners\falling skies\-langen-graphical\ to recycle bin with result 1026.
  06-06-2013 22:21:43.921 Error 1026 try Delete without Trailing Path Delimiter.
  06-06-2013 22:21:48.921 Delete C:\ProgramData\Team MediaPortal\MediaPortal\Thumbs\MPTVSeriesBanners\falling skies\-langen-graphical to recycle bin with result 5.
  06-06-2013 22:21:48.921 Delete C:\ProgramData\Team MediaPortal\MediaPortal\Thumbs\MPTVSeriesBanners\falling skies\-langen-posters\ to recycle bin with result 1026.
  06-06-2013 22:21:48.921 Error 1026 try Delete without Trailing Path Delimiter.
  06-06-2013 22:21:53.953 Delete C:\ProgramData\Team MediaPortal\MediaPortal\Thumbs\MPTVSeriesBanners\falling skies\-langen-posters to recycle bin with result 5.
  06-06-2013 22:21:53.953 Delete C:\ProgramData\Team MediaPortal\MediaPortal\Thumbs\MPTVSeriesBanners\svaty\-langen-posters\ to recycle bin with result 1026.
  06-06-2013 22:21:53.953 Error 1026 try Delete without Trailing Path Delimiter.
  06-06-2013 22:21:58.953 Delete C:\ProgramData\Team MediaPortal\MediaPortal\Thumbs\MPTVSeriesBanners\svaty\-langen-posters to recycle bin with result 5.

...

  06-06-2013 22:26:50.218 Delete C:\ProgramData\Team MediaPortal\MediaPortal\Thumbs\MPTVSeriesBanners\top gear\episodes\0x113.jpg to recycle bin with result 0.


Бьюсь уже третий день, ничего в голову не приходит, может есть идеи у кого?

Это сообщение отредактировал(а) ajs - 7.6.2013, 15:07
PM MAIL   Вверх
northener
Дата 7.6.2013, 15:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1361
Регистрация: 2.9.2010

Репутация: нет
Всего: 20



С "Trailing Path Delimiter" это не имя файла(папки), а путь. Поэтому и ошибка 1026 (файл не найден). А без него ошибка 5 (access denied).


--------------------
Но только лошади летают вдохновенно.
Иначе лошади разбились бы мгновенно!
PM MAIL   Вверх
ajs
Дата 7.6.2013, 15:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 30.3.2007

Репутация: нет
Всего: нет



Почему тогда файлы по тем же путям спокойно удаляются (последняя строка лога)? И в ручную без вопросов так же удаление проходит?
PM MAIL   Вверх
ajs
Дата 7.6.2013, 16:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 30.3.2007

Репутация: нет
Всего: нет



На 7-ке проверил, работает примерно так:
Код

  07-06-2013 16:14:26.577 Delete D:\Work\Programming\Delphi\MePoTools\thumbs\MPTVSeriesBanners\terra nova\-langen-graphica\ to recycle bin with result 0.
  07-06-2013 16:14:26.647 Delete D:\Work\Programming\Delphi\MePoTools\thumbs\MPTVSeriesBanners\terra nova new\ to recycle bin with result 124.
  07-06-2013 16:14:26.927 Delete D:\Work\Programming\Delphi\MePoTools\thumbs\MPTVSeriesBanners\terra nova new\-langen-graphical\ to recycle bin with result 0.
  07-06-2013 16:14:27.047 Delete D:\Work\Programming\Delphi\MePoTools\thumbs\MPTVSeriesBanners\terra nova new\-langen-posters\ to recycle bin with result 0.
  07-06-2013 16:14:28.068 Delete D:\Work\Programming\Delphi\MePoTools\thumbs\MPTVSeriesBanners\terra nova new\-langen-seasons\ to recycle bin with result 32.
  07-06-2013 16:14:28.125 Delete D:\Work\Programming\Delphi\MePoTools\thumbs\MPTVSeriesBanners\terra nova new\episodes\ to recycle bin with result 0.


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.0505 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.