![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ошибка при вызове 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.