:: Visual Foxpro, Foxpro for DOS
Копирование файлов
Nov
Автор

Сообщений: 39
Дата регистрации: 05.02.2005
Есть компьютер А и компьютер Б, соединены в сеть. Из Фоксовской программки которая выполняется на компьютере А надо скопировать довольно здоровый файл на компьютер Б, причем сделать две копии (в два разных каталога). Как можно минимизировать траффик, чтобы не перекачивать этот файл по сети дважды?

Ну что-то типа такого: на компьютере Б сделать COM-компоненту, которая копирует файл из первого во второй каталог на своем же компьютере Б. Дальше копируем файл с копьютера А на компьютер Б в один из каталогов и вызываем метод COM-компоненты, который и делает «вторую» копию уже локально так сказать, без дополнительного трафика. Может есть какой-то другой, более простой способ?

VFP 8, Windows XP на обеих машинах.
Ratings: 0 negative/0 positive
Re: Копирование файлов
AleksM

Сообщений: 17881
Дата регистрации: 11.11.2003
А что без COM компонента системную команду COPY передать нельзя?




------------------
Лучше переесть, чем недоспать.
Не спеши, а то успеешь.
Ratings: 0 negative/0 positive
Re: Копирование файлов
piva

Сообщений: 18655
Откуда: Курган
Дата регистрации: 24.03.2004
До COM сервера который файлы только копирует - я бы ни в жисть не догодался




------------------
Часто бывает так, что есть над чем задуматься, а нечем.
Ratings: 0 negative/0 positive
Re: Копирование файлов
Nov
Автор

Сообщений: 39
Дата регистрации: 05.02.2005
2AleksM
А как "передать системную команду COPY"? Ну допустим сделаю я *.BAT или любой другой скриптовый файлик, закину на машину Б. А как заставить Windows на машине Б выполнить этот файл?
Ratings: 0 negative/0 positive
Re: Копирование файлов
AleksM

Сообщений: 17881
Дата регистрации: 11.11.2003
Можешь и не системную COPY использовать, а команду ФОКСА COPY FILE <FullFileName1> TO <FullFileName2>




------------------
Лучше переесть, чем недоспать.
Не спеши, а то успеешь.
Ratings: 0 negative/0 positive
Re: Копирование файлов
Nov
Автор

Сообщений: 39
Дата регистрации: 05.02.2005
2AleksM
Дык проблема-то в том, что если просто использовать COPY (ну или Фоксовую COPY TO), выполняя ее на машине А, а копируя файл из одного каталога в другой на машине Б, то по сети идет двойная перекачка! То бишь из каталога-источника с машины Б качается файл на машину А (видимо в какой-то temp каталог), а потом снова перекачивается на машину Б в каталог-приемник!
Ratings: 0 negative/0 positive
Re: Копирование файлов
AleksM

Сообщений: 17881
Дата регистрации: 11.11.2003
Это 100%, проверял?




------------------
Лучше переесть, чем недоспать.
Не спеши, а то успеешь.
Ratings: 0 negative/0 positive
Re: Копирование файлов
Nov
Автор

Сообщений: 39
Дата регистрации: 05.02.2005
2AleksM
Ну да, проверял. Открываю Windows Task Manager / Networking и наблюдаю загрузку сети
Ratings: 0 negative/0 positive
Re: Копирование файлов
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Hi Nov!

Да, именно COM компоненту - и зарегистрировать её в DCOM или COM+ (поскольку речь идёт про WinXP).
DCOM и COM+ это по сути развитие идей RPC (remote procedure call) - иначе говоря это и есть способ заставить выполниться свой код на другой машине. RPC сам по себе более низкоуровневый, и AFAIK на фоксе сделать такой сервер не получится - тогда как с DCOM/COM+ запросто.

P.S. Не удивляйся, если у тебя возникнут проблемы с правами доступа Для COM+ можно просто сменить аккаунт, под которым работает COM+ приложение, ну или дать "тому" аккаунту нужные права на папки и файлы...
Вообще авторизация и управление системой безопасности в COM+ это довольно сложная штука.




------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Копирование файлов
Nov
Автор

Сообщений: 39
Дата регистрации: 05.02.2005
2Igor Korolyov
Да я понимаю, что с авторизацией и т.д. намучаюсь, вот и подумалось: может какой-то другой вариант есть? Надо бы посмотреть наверное еще в сторону MSMQ, может там как-то попроще выйдет...
В любом случае: в очередной раз спасибо, Игорь!
Ratings: 0 negative/0 positive
Re: Копирование файлов
самсон
если заранее известен файл или хотябы каталог назначения на машине Б то можно обойтись и бат файлом
на машине Б сканируй в цикле бесконечном в бат файле наличие файла и кидай его куда нужно при появлении
Ratings: 0 negative/0 positive
Re: Копирование файлов
sashat
Я так понимаю, что 2 копии нужно для надежности?
А какая надежность получается если ты САМ не запишешь ДВА РАЗА ОДИН И ТОТЖЕ файл в ДВА МЕСТА?
Есть вероятность, что ты начал записывать первый файл, на середине этого отвалилась сеть
А программка на том конце этого не поняла и подумала, что ты записал все и создаст копию ПЛОХОГО файла.
Или сеть просто сбойнула и немного подправила твой файл во время передачи (было такое одно время с китайскими сетевыми карточками) И ты рад и программа рада а данные получаем неправильные
Помоему выход тут один копировать самому и при этом после передачи проверять контрольную сумму файла. (если данные действительно нужные)
Ratings: 0 negative/0 positive
Re: Копирование файлов
Nov
Автор

Сообщений: 39
Дата регистрации: 05.02.2005
2самсон
Да не хотелось бы делать "вечный" батник. Как-то это не очень надежное решение.
Ratings: 0 negative/0 positive
Re: Копирование файлов
Nov
Автор

Сообщений: 39
Дата регистрации: 05.02.2005
sashat
Я так понимаю, что 2 копии нужно для надежности?
Для нее родимой.
Ну если сеть отвалилась, то я это ловлю на передающей стороне и соответственно в лог-файле будет записано что архивация не прошла.
А насчет контрольных кодов - ну да, это бы хорошо сделать, но это как раз работа и будет для COM-сервера. Я файл перекинул, COM-серверу просигналил, он мне CRC-код посчитает и вернет, ну а я соответственно протокол и запишу.



Отредактировано (06.05.05 05:34)


------------------
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 44 (Гостей: 44)

© 2000-2024 Fox Club 
Яндекс.Метрика