Текущий архив: 2009.08.30;
Скачать: CL | DM;
Вниз
CopyFiles отключить контроль ошибок Найти похожие ветки
← →
belmol (2009-07-02 11:50) [0]есть код
{$I-}
CopyFiles( Handle, [ExtractFilePath(Application.ExeName)+"TempDirectory\update.exe"],ExtractFilePath(Application.ExeName),true,false);
RemoveDir(ExtractFilePath(Application.ExeName)+"TempDirectory");
{$I+}
где
function CopyFiles( Handle : Hwnd; Src : array of string; Dest : string;
Move : Boolean; AutoRename : Boolean ) : Integer;
var
SHFileOpStruct : TSHFileOpStruct;
SrcBuf : TBuffer;
begin
CreateBuffer( Src, SrcBuf );
with SHFileOpStruct do
begin
Wnd := Handle;
wFunc := FO_COPY;
if Move then wFunc := FO_MOVE;
pFrom := Pointer( SrcBuf );
pTo := PChar( Dest );
fFlags := FOF_NOCONFIRMATION and FOF_SIMPLEPROGRESS;
if AutoRename then fFlags := FOF_RENAMEONCOLLISION and FOF_SIMPLEPROGRESS;
fAnyOperationsAborted := False;
hNameMappings := nil;
lpszProgressTitle := nil;
end;
Result := SHFileOperation( SHFileOpStruct );
SrcBuf := nil;
end;
при отсутствии фаила с директории он начинает ругаться и говорить что ошибка копирования, как ее убрать, чтоб если ошибка , то наплевать, продолжить выполнение.. т.е. не показывать никаких сообщений об ошибке.
вроде как вычитал что вот это
{$I-} {$I+}
либо {$IOChecks off} {$IOChecks on}
но что то ни то ни то не отключает контроль ошибок.
← →
Palladin © (2009-07-02 12:10) [1]эти директивы влияют только на стандартые методы ввода/вывода
заверни в try/except
← →
belmol (2009-07-02 12:12) [2]пробовал.. не идет...
← →
Сергей М. © (2009-07-02 12:15) [3]
> belmol
Что мешает проверить наличие файла непосредственно перед тем как копировать его ?
← →
Сергей М. © (2009-07-02 12:19) [4]
> Palladin © (02.07.09 12:10) [1]
> заверни в try/except
SHFileOperation не возбуждает исключений - это же API-функция..
Она, afair, показывает диал.окно с инф-цией об отказе в выполнении операции, именно это окно автор и назвал "руганью")
← →
Юрий Зотов © (2009-07-02 12:21) [5]Вариант: if FileExists(Src[i]) then ...
PS
Что-то мне кажется, что при установке флагов AND"ы надо на OR"ы заменить (раз) и что повторная установка FOF_SIMPLEPROGRESS не нужна (два).
← →
belmol (2009-07-02 12:25) [6]именно and-ы )) спасибо я что то не подумал попросту проверить наличие файла..
← →
Юрий Зотов © (2009-07-02 12:27) [7]> belmol (02.07.09 12:25) [6]
> именно and-ы
А в чем же смысл этих AND"ов? Непонятно.
← →
Anatoly Podgoretsky © (2009-07-02 12:52) [8]
> я что то не подумал попросту проверить наличие файла..
В чем же тогда смысл SHFileOperation, надо простой CopyFile
← →
clickmaker © (2009-07-02 12:54) [9]> чтоб если ошибка , то наплевать, продолжить выполнение..
> т.е. не показывать никаких сообщений об ошибке
FOF_NOERRORUI
← →
Dennis I. Komarov © (2009-07-02 12:56) [10]
> clickmaker © (02.07.09 12:54) [9]
> > чтоб если ошибка , то наплевать, продолжить выполнение.
> .
> > т.е. не показывать никаких сообщений об ошибке
>
> FOF_NOERRORUI
Не поможет, пока с "AND"-ами не разберется ;)
← →
Юрий Зотов © (2009-07-02 13:12) [11]> clickmaker © (02.07.09 12:54) [9]
Хех.. а ведь первое, с чего я начал - это предположил то же самое и посмотрел список флагов в своей локальной MSDN. Странно, но такого флага там не нашел... видимо, устарела (или искал плохо).
Впрочем, Dennis I. Komarov прав - пока автор не разберется с булевой алгеброй, никакие флаги ему не помогут. А самое печальное - это то, что слушать не хочет... но это уже его проблемы. Наловится багов - поймет.
← →
Anatoly Podgoretsky © (2009-07-02 13:31) [12]> Юрий Зотов (02.07.2009 13:12:11) [11]
Устарела, но в исходниках есть. Ну а в большом MSDN еще больше.
← →
Dennis I. Komarov © (2009-07-02 18:24) [13]
> А в чем же смысл этих AND"ов? Непонятно.
Ну как же непонятно, :) что бы и тот флаг был И этот
← →
Юрий Зотов © (2009-07-02 19:03) [14]> Dennis I. Komarov © (02.07.09 18:24) [13]
Это-то как раз было сразу понятно...
:o)
← →
Anatoly Podgoretsky © (2009-07-03 08:54) [15]> Dennis I. Komarov (02.07.2009 18:24:13) [13]
Это не соединительный союз, а математическая операция.
← →
Dennis I. Komarov © (2009-07-03 09:28) [16]
> Это не соединительный союз, а математическая операция.
Дядя Толя, это для меня разъяснение? Это всего лишь логика [6] и ничего более ;)
← →
Anatoly Podgoretsky © (2009-07-03 09:45) [17]Это для тебя! Это не то И и поежтогму догадка, что бы и то было и это не подходит. Я сегодня уже посылал к себе на сайт за разъяснением
http://www.podgoretsky.com/Redir.aspx?id=137&DownloadFile=~/ddp/bits.aspx
← →
brother © (2009-07-03 09:53) [18]> http://www.podgoretsky.com/Redir.aspx?id=137&DownloadFile=~/ddp/bits.aspx
)))))))
это оттуда:Для значения ИСТИНА, альтернативные варианты такие – ДА, ЕДИНИЦА, ВКЛЮЧЕНО, УСТАНОВШЕНО, ВЗВЕДЕНО, TRUE, T, 1, + и другие.
;)
← →
Dennis I. Komarov © (2009-07-03 10:01) [19]
> Anatoly Podgoretsky © (03.07.09 09:45) [17]
:) Ладно, видно у Вас еще утро...
Я знаю что 1 and 2 = 0, а 1 and 3 = $1 и т.д. и т.п.
← →
Anatoly Podgoretsky © (2009-07-03 10:25) [20]> brother (03.07.2009 09:53:18) [18]
Истина и есть :-)
← →
Anatoly Podgoretsky © (2009-07-03 10:26) [21]> Dennis I. Komarov (03.07.2009 10:01:19) [19]
Какое утро - уже два часа пашу.
← →
Dennis I. Komarov © (2009-07-03 10:29) [22]
> Anatoly Podgoretsky © (03.07.09 10:26) [21]
ну тогда не грех [5], [6], [7], [9], [10] еще раз перечитать...
Страницы: 1 вся ветка
Текущий архив: 2009.08.30;
Скачать: CL | DM;
Память: 0.49 MB
Время: 0.005 c