Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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
2-1246181883
Новичок
2009-06-28 13:38
2009.08.30
Закладки TabSheet


6-1205991809
mrfreeman2007
2008-03-20 08:43
2009.08.30
Счетчик посещений


15-1246568526
Kostafey
2009-07-03 01:02
2009.08.30
Наклепал пару заметок про EMaxima


15-1246337441
desc
2009-06-30 08:50
2009.08.30
Общий вопрос по базам данных


10-1158414306
AAAA
2006-09-16 17:45
2009.08.30
TDCOMConnection. Создал





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский