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

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

Ошибка при вызове SHFileOperation после ForceDirectories [D5, D7, WinXP]


pasha_golub ©   (2007-11-06 17:03:00) 

Смысл кода внизу:

edit2.text - путь, который должен быть создан
edit1.text - папка, которая должна быть скопирована в ранее созданный путь

Так вот если убрать ForceDirectories, то все работает тихо. Если нет, то ошибка: "Can't read the source files" или что-то в этом роде. Дословно не помню, сорри.

Шо за мистика?

procedure TForm1.Button1Click(Sender: TObject);
var  SH_Info: TSHFileOpStruct;
begin
   if not ForceDirectories(edit2.text) then
    raise Exception.Create('Smth wrong');
   ZeroMemory(@SH_Info, SizeOf(SH_Info));
   SH_Info.pFrom := PChar(edit1.Text);
   SH_Info.Wnd := GetDesktopWindow;
   SH_Info.wFunc := FO_COPY;
   SH_Info.pTo := PChar(edit2.text);
   SH_Info.fFlags := FOF_NOCONFIRMATION or FOF_NOCONFIRMMKDIR or FOF_RENAMEONCOLLISION or FOF_SILENT;
   if SHFileOperation(SH_Info) > 0 then RaiseLastOsError;
end;


pasha_golub   (2007-11-07 10:45:00) [1]


> Anatoly Podgoretsky ©   (07.11.07 09:58) [5]


> На этом многие спотыкаются.

Да самое обидно, что я уже пользовался этим SHFileOp, да не стал искать код. С наскоку решил. :)


Anatoly Podgoretsky   (2007-11-07 09:58:00) [2]

> pasha_golub  (07.11.2007 09:44:04)  [4]

> Rouse_ ©   (06.11.07 17:47) [2]
>
> Терминирующие нулики добавь...

> Спасибо, ребята. Позор мне. Помню шо заковыка была... Ужас. Я цельный день промучался.

На этом многие спотыкаются. Большинство примеров в Сети имеют подобную ошибку.


pasha_golub   (2007-11-07 09:44:00) [3]


> Johnmen ©   (06.11.07 17:45) [1]
>
> Ну что тут сказать? Читайте справку по SHFILEOPSTRUCT в
> MSDN. В частности про pFrom.
>


> Rouse_ ©   (06.11.07 17:47) [2]
>
> Терминирующие нулики добавь...

Спасибо, ребята. Позор мне. Помню шо заковыка была... Ужас. Я цельный день промучался.


> Anatoly Podgoretsky ©   (06.11.07 18:31) [3]
>
> > pasha_golub  (06.11.2007 17:03:00)  [0]
>
> Зачем нужен ForceDirectories, если используешь SHFileOperation
>

Там серия этих Форсов, создают необходимые пути поначалу. Думал, что в этом дело.


Anatoly Podgoretsky   (2007-11-06 18:31:00) [4]

> pasha_golub  (06.11.2007 17:03:00)  [0]

Зачем нужен ForceDirectories, если используешь SHFileOperation


Rouse_   (2007-11-06 17:47:00) [5]

Терминирующие нулики добавь...


Johnmen   (2007-11-06 17:45:00) [6]

Ну что тут сказать? Читайте справку по SHFILEOPSTRUCT в MSDN. В частности про pFrom.


Наверх

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