![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Копирование файла по сети
Bora.ru © (2007-08-28 19:15:00)данная программа по замыслу должна запускаться на удаленном компе и скопировать файл на мой комп в папку Shared, в которой установлен полный доступ.
вот весь код:
var
sourcefile,destfile:pchar;
begin
sourcefile:='d:\file.rar';
destfile:='\\MyComp\Shared\file.rar';
CopyFile(sourcefile,destfile,false);
end.
Запускаю эту прогу на том компе, но безрезультатно. Хотя с моего компа в его расшаренную папку ф-ция CopyFile копирует без проблем. А также если копировать тот файл в какую-нибудь папку на его компе, то также работает. Но а вот по сети, блин, не хочет.
Что здесь не так?
Bora.ru (2007-08-30 19:31:00) [21]Иными словами ошибка всетаки при CopyFile. Но почему же тогда программа не завершает работу на этом месте?
Anatoly Podgoretsky (2007-08-30 19:22:00) [22]> Riply (30.08.2007 18:41:25) [25]
Нет, это просто имя, а вот Windows.Beep это АПИ
Reindeer Moss Eater (2007-08-30 18:47:00) [23].... И там все, как и должно быть у нормальных людей:
If the function succeeds, the return value is nonzero.
If the function fails, the return value is zero. To get extended error information, call GetLastError.
И никаких генераций исключений
Reindeer Moss Eater (2007-08-30 18:43:00) [24]Это Sysutils
procedure Beep;
begin
MessageBeep(0);
end;
А вот это уже Win API
function MessageBeep; external user32 name 'MessageBeep';
Riply (2007-08-30 18:41:00) [25]> [23] Reindeer Moss Eater © (30.08.07 18:31)
>А ты попробуй и фальсифицируй это утверждение.
Я бы попробовала привести контпример, но не знаю как отличить API функцию от не API.
Beep - это API ?
Reindeer Moss Eater (2007-08-30 18:33:00) [26]Винапи написано для всех.
В том числе для тех, кто пользуется языками и компиляторами в которых нет поддержки исключительных ситуаций.
Reindeer Moss Eater (2007-08-30 18:31:00) [27]А ты попробуй и фальсифицируй это утверждение.
:)
Riply (2007-08-30 18:26:00) [28]>[19] Reindeer Moss Eater © (30.08.07 16:39)
>Функции винапи бесполезно обертывать в try except они не генерируют исключений.
А на чем основано это утверждение ?
Anatoly Podgoretsky (2007-08-30 16:46:00) [29]Не видать обработчика
Сергей М. (2007-08-30 16:45:00) [30]
> Bora.ru
Ну ты и клоун)
Reindeer Moss Eater (2007-08-30 16:39:00) [31]Функции винапи бесполезно обертывать в try except они не генерируют исключений.
Reindeer Moss Eater (2007-08-30 16:37:00) [32]У тебя ошибка в программе
Bora.ru (2007-08-30 16:31:00) [33]var
sourcefile,destfile:pchar;
f:textfile;
e:word;
s:string;
begin
try
sourcefile:='d:\file.rar';
destfile:='\\MyComp\Shared\file.rar';
CopyFile(sourcefile,destfile,false);
assignfile(f,'error.txt');
rewrite(f);
write(f,'no errors');
closefile(f);
except
e:=getlasterror;
s:=SysErrorMessage(e);
assignfile(f,'error.txt');
rewrite(f);
write(f,s);
closefile(f);
end;
end.
в результате - текстовый файл содержит строку 'no errors', но файл не скопирован.
Anatoly Podgoretsky (2007-08-30 15:52:00) [34]
> обработчик есть, я его просто позже добавил.
У тебя обработчик ошибочный
Reindeer Moss Eater (2007-08-30 15:51:00) [35]код выполняется безошибочно, но что странно - безрезультатно.
это оптический обман.
Bora.ru (2007-08-30 15:50:00) [36]
> Anatoly Podgoretsky © (30.08.07 15:14) [13]
обработчик есть, я его просто позже добавил.
Anatoly Podgoretsky (2007-08-30 15:14:00) [37]Откуда знаешь, нет же никакой обработки ошибок.
Bora.ru (2007-08-30 15:11:00) [38]код выполняется безошибочно, но что странно - безрезультатно.
Bora.ru (2007-08-30 11:39:00) [39]
> Германн © (30.08.07 01:26) [6]
> FormatMessage тебе поможет перевести DWORD в LPTSTR.
SysErrorMessage проще
Reindeer Moss Eater (2007-08-30 11:37:00) [40]Доступ запрещен к файлу-источнику или к папке, куда копируется файл?
А самому-то не догадаться попробовать сначала открыть источник, потом создать файл назначения?