Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.09.30;
Скачать: [xml.tar.bz2];

Вниз

Копирование файла по сети   Найти похожие ветки 

 
Bora.ru   (2007-08-28 19:15) [0]

данная программа по замыслу должна запускаться на удаленном компе и скопировать файл на мой комп в папку Shared, в которой установлен полный доступ.
вот весь код:
var
  sourcefile,destfile:pchar;
begin
sourcefile:="d:\file.rar";
destfile:="\\MyComp\Shared\file.rar";
CopyFile(sourcefile,destfile,false);
end.

Запускаю эту прогу на том компе, но безрезультатно. Хотя с моего компа в его расшаренную папку ф-ция CopyFile копирует без проблем. А также если копировать тот файл в какую-нибудь папку на его компе, то также работает. Но а вот по сети, блин, не хочет.
Что здесь не так?


 
Reindeer Moss Eater ©   (2007-08-28 21:20) [1]

GetlastErroor знает, что здесь не так.


 
Bora.ru   (2007-08-29 00:27) [2]


> Reindeer Moss Eater ©  

это че функция такая? а как ее использовать?


 
grisme ©   (2007-08-29 02:22) [3]

F1 тебе подскажет, что за функция такая


 
Reindeer Moss Eater ©   (2007-08-29 10:27) [4]

Как использовать? Как и все остальные.
Вызывать и смотреть на возвращаемый результат.


 
Bora.ru   (2007-08-29 23:36) [5]

GetLastError выдает результат - 5. В справке я не нашел, какая ошибка имеет такой код.


 
Германн ©   (2007-08-30 01:26) [6]


> Bora.ru   (29.08.07 23:36) [5]
>
> GetLastError выдает результат - 5. В справке я не нашел,
>  какая ошибка имеет такой код.
>

FormatMessage тебе поможет перевести DWORD в LPTSTR.
:-)


 
Reindeer Moss Eater ©   (2007-08-30 09:48) [7]

Доступ запрещен.


 
Bora.ru   (2007-08-30 11:27) [8]


> Reindeer Moss Eater ©   (30.08.07 09:48) [7]
> Доступ запрещен.

Доступ запрещен к файлу-источнику или к папке, куда копируется файл?


 
iXT ©   (2007-08-30 11:31) [9]

> [8] Bora.ru   (30.08.07 11:27)

Попробуй сделать эту операцию средствами не своей прогаммы


 
Reindeer Moss Eater ©   (2007-08-30 11:37) [10]

Доступ запрещен к файлу-источнику или к папке, куда копируется файл?

А самому-то не догадаться попробовать сначала открыть источник, потом создать файл назначения?


 
Bora.ru   (2007-08-30 11:39) [11]


> Германн ©   (30.08.07 01:26) [6]
> FormatMessage тебе поможет перевести DWORD в LPTSTR.

SysErrorMessage проще


 
Bora.ru   (2007-08-30 15:11) [12]

код выполняется безошибочно, но что странно - безрезультатно.


 
Anatoly Podgoretsky ©   (2007-08-30 15:14) [13]

Откуда знаешь, нет же никакой обработки ошибок.


 
Bora.ru   (2007-08-30 15:50) [14]


> Anatoly Podgoretsky ©   (30.08.07 15:14) [13]

обработчик есть, я его просто позже добавил.


 
Reindeer Moss Eater ©   (2007-08-30 15:51) [15]

код выполняется безошибочно, но что странно - безрезультатно.

это оптический обман.


 
Anatoly Podgoretsky ©   (2007-08-30 15:52) [16]


> обработчик есть, я его просто позже добавил.

У тебя обработчик ошибочный


 
Bora.ru   (2007-08-30 16:31) [17]

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", но файл не скопирован.


 
Reindeer Moss Eater ©   (2007-08-30 16:37) [18]

У тебя ошибка в программе


 
Reindeer Moss Eater ©   (2007-08-30 16:39) [19]

Функции винапи бесполезно обертывать в try except они не генерируют исключений.


 
Сергей М. ©   (2007-08-30 16:45) [20]


> Bora.ru


Ну ты и клоун)


 
Anatoly Podgoretsky ©   (2007-08-30 16:46) [21]

Не видать обработчика


 
Riply ©   (2007-08-30 18:26) [22]

>[19] Reindeer Moss Eater ©   (30.08.07 16:39)
>Функции винапи бесполезно обертывать в try except они не генерируют исключений.
А на чем основано это утверждение ?


 
Reindeer Moss Eater ©   (2007-08-30 18:31) [23]

А ты попробуй и фальсифицируй это утверждение.
:)


 
Reindeer Moss Eater ©   (2007-08-30 18:33) [24]

Винапи написано для всех.
В том числе для тех, кто пользуется языками и компиляторами в которых нет поддержки исключительных ситуаций.


 
Riply ©   (2007-08-30 18:41) [25]

> [23] Reindeer Moss Eater ©   (30.08.07 18:31)
>А ты попробуй и фальсифицируй это утверждение.
Я бы попробовала привести контпример, но не знаю как отличить API функцию от не API.
Beep - это API ?


 
Reindeer Moss Eater ©   (2007-08-30 18:43) [26]

Это Sysutils

procedure Beep;
begin
 MessageBeep(0);
end;

А вот это уже Win API

function MessageBeep; external user32 name "MessageBeep";


 
Reindeer Moss Eater ©   (2007-08-30 18:47) [27]

.... И там все, как и должно быть у нормальных людей:

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.


И никаких генераций исключений


 
Anatoly Podgoretsky ©   (2007-08-30 19:22) [28]

> Riply  (30.08.2007 18:41:25)  [25]

Нет, это просто имя, а вот Windows.Beep это АПИ


 
Bora.ru   (2007-08-30 19:31) [29]

Иными словами ошибка всетаки при CopyFile. Но почему же тогда программа не завершает работу на этом месте?


 
Riply ©   (2007-08-30 19:41) [30]

>[27] Reindeer Moss Eater ©   (30.08.07 18:47)
>.... И там все, как и должно быть у нормальных людей:
С тем, что некоторые API генерят исключения под дебугером, все согласны ?
Вот меня и интересует: может есть и такие, которые сгенерят и в "нормальных" условиях ?


 
Leonid Troyanovsky ©   (2007-08-30 19:48) [31]


> Riply ©   (30.08.07 19:41) [30]

> С тем, что некоторые API генерят исключения под дебугером,
>  все согласны ?

Под некоторым дебугером? :)

--
Regards, LVT.


 
Bora.ru   (2007-08-30 19:52) [32]

короче GetLastError всеравно выдает ошибку "отказано в доступе". Но я на 100% уверен, что к файлу доступ есть. А в папке установлен доступ для записи. Ну люди, не смейтесь - помогите


 
Leonid Troyanovsky ©   (2007-08-30 19:56) [33]


> Bora.ru   (30.08.07 16:31) [17]

>  CopyFile(sourcefile,destfile,false);
>  assignfile(f,"error.txt");
>  rewrite(f);
>  write(f,"no errors");
>  closefile(f);
> except
> e:=getlasterror;

Конечно, вызов CloseHandle из closefile прошел успешно.
Кто ж так ошибки обрабатывает? Учись, студент:

Win32Check(CopyFile(..));

--
Regards, LVT.


 
Leonid Troyanovsky ©   (2007-08-30 19:58) [34]


> Bora.ru   (30.08.07 19:52) [32]

>  Но я на 100% уверен, что к файлу доступ есть. А в папке
> установлен доступ для записи.

Что за приложение, как запускается?

--
Regards, LVT.


 
Riply ©   (2007-08-30 20:06) [35]

> [31] Leonid Troyanovsky © (30.08.07 19:48)
>Под некоторым дебугером? :)
Чесно говоря, я в них(дебугерах) не очень разбираюсь,
но под Delphi этот код даст исключение:
Handle := CreateEvent(nil, True, True, nil);
NtClose(Handle);
NtClose(Handle);

а в Help"e, (например для CloseHandle) написано:
Closing an invalid handle raises an exception when the application is running under a debugger.
This includes closing a handle twice, and using CloseHandle on a
handle returned by the FindFirstFile function.

P.S.
Sorry, что зафлудила ветку.


 
Bora.ru   (2007-08-30 20:10) [36]


> Leonid Troyanovsky ©   (30.08.07 19:58) [34]

> Что за приложение, как запускается?


Просто проект без форм


 
Leonid Troyanovsky ©   (2007-08-30 20:25) [37]


> Riply ©   (30.08.07 20:06) [35]

Принимается.
Да, ИШ как-то приводил здесь примеры,
но были там "нормальные условия" не упомню.

--
Regards, LVT.


 
Leonid Troyanovsky ©   (2007-08-30 20:27) [38]


> Bora.ru   (30.08.07 20:10) [36]

> Просто проект без форм

И?

Если сложно, то, конечно, можно не отвечать.

--
Regards, LVT.


 
Bora.ru   (2007-08-30 21:08) [39]


> Leonid Troyanovsky ©   (30.08.07 19:58) [34]
> Что за приложение

в первом сообщении написано - это и есть вся программа

> как запускается?

через Telnet запускается


 
Leonid Troyanovsky ©   (2007-08-30 21:34) [40]


> Bora.ru   (30.08.07 21:08) [39]

> через Telnet запускается

Акаунту телнета разрешен доступ к share?
Что показывает net view \\MyComp?

И в чем, собс-но, смысл этого приложения, если все
можно (если можно) сделать из телнета.

--
Regards, LVT.



Страницы: 1 2 вся ветка

Форум: "Начинающим";
Текущий архив: 2007.09.30;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.53 MB
Время: 0.129 c
2-1188903449
em240
2007-09-04 14:57
2007.09.30
MSSQL2000+запуск функции из DLL


1-1184337761
WASM
2007-07-13 18:42
2007.09.30
TOOLTIP


6-1170223586
slartus
2007-01-31 09:06
2007.09.30
Список FTP-серверов в локальной сети


15-1185940589
gn
2007-08-01 07:56
2007.09.30
Что ни будь хочеться почитать


15-1188484927
lookin
2007-08-30 18:42
2007.09.30
Про пиво и клаву...





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский