Копирование файлов | |
---|---|
Nov Автор Сообщений: 39 Дата регистрации: 05.02.2005 |
Есть компьютер А и компьютер Б, соединены в сеть. Из Фоксовской программки которая выполняется на компьютере А надо скопировать довольно здоровый файл на компьютер Б, причем сделать две копии (в два разных каталога). Как можно минимизировать траффик, чтобы не перекачивать этот файл по сети дважды?
Ну что-то типа такого: на компьютере Б сделать COM-компоненту, которая копирует файл из первого во второй каталог на своем же компьютере Б. Дальше копируем файл с копьютера А на компьютер Б в один из каталогов и вызываем метод COM-компоненты, который и делает «вторую» копию уже локально так сказать, без дополнительного трафика. Может есть какой-то другой, более простой способ? VFP 8, Windows XP на обеих машинах. |
Re: Копирование файлов | |
---|---|
AleksM Сообщений: 17881 Дата регистрации: 11.11.2003 |
А что без COM компонента системную команду COPY передать нельзя?
------------------ Лучше переесть, чем недоспать. Не спеши, а то успеешь. |
Re: Копирование файлов | |
---|---|
piva Сообщений: 18655 Откуда: Курган Дата регистрации: 24.03.2004 |
До COM сервера который файлы только копирует - я бы ни в жисть не догодался
------------------ Часто бывает так, что есть над чем задуматься, а нечем. |
Re: Копирование файлов | |
---|---|
Nov Автор Сообщений: 39 Дата регистрации: 05.02.2005 |
2AleksM
А как "передать системную команду COPY"? Ну допустим сделаю я *.BAT или любой другой скриптовый файлик, закину на машину Б. А как заставить Windows на машине Б выполнить этот файл? |
Re: Копирование файлов | |
---|---|
AleksM Сообщений: 17881 Дата регистрации: 11.11.2003 |
Можешь и не системную COPY использовать, а команду ФОКСА COPY FILE <FullFileName1> TO <FullFileName2>
------------------ Лучше переесть, чем недоспать. Не спеши, а то успеешь. |
Re: Копирование файлов | |
---|---|
Nov Автор Сообщений: 39 Дата регистрации: 05.02.2005 |
2AleksM
Дык проблема-то в том, что если просто использовать COPY (ну или Фоксовую COPY TO), выполняя ее на машине А, а копируя файл из одного каталога в другой на машине Б, то по сети идет двойная перекачка! То бишь из каталога-источника с машины Б качается файл на машину А (видимо в какой-то temp каталог), а потом снова перекачивается на машину Б в каталог-приемник! |
Re: Копирование файлов | |
---|---|
AleksM Сообщений: 17881 Дата регистрации: 11.11.2003 |
Это 100%, проверял?
------------------ Лучше переесть, чем недоспать. Не спеши, а то успеешь. |
Re: Копирование файлов | |
---|---|
Nov Автор Сообщений: 39 Дата регистрации: 05.02.2005 |
2AleksM
Ну да, проверял. Открываю Windows Task Manager / Networking и наблюдаю загрузку сети |
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 |
Re: Копирование файлов | |
---|---|
Nov Автор Сообщений: 39 Дата регистрации: 05.02.2005 |
2Igor Korolyov
Да я понимаю, что с авторизацией и т.д. намучаюсь, вот и подумалось: может какой-то другой вариант есть? Надо бы посмотреть наверное еще в сторону MSMQ, может там как-то попроще выйдет... В любом случае: в очередной раз спасибо, Игорь! |
Re: Копирование файлов | |
---|---|
самсон |
если заранее известен файл или хотябы каталог назначения на машине Б то можно обойтись и бат файлом
на машине Б сканируй в цикле бесконечном в бат файле наличие файла и кидай его куда нужно при появлении |
Re: Копирование файлов | |
---|---|
sashat |
Я так понимаю, что 2 копии нужно для надежности?
А какая надежность получается если ты САМ не запишешь ДВА РАЗА ОДИН И ТОТЖЕ файл в ДВА МЕСТА? Есть вероятность, что ты начал записывать первый файл, на середине этого отвалилась сеть А программка на том конце этого не поняла и подумала, что ты записал все и создаст копию ПЛОХОГО файла. Или сеть просто сбойнула и немного подправила твой файл во время передачи (было такое одно время с китайскими сетевыми карточками) И ты рад и программа рада а данные получаем неправильные Помоему выход тут один копировать самому и при этом после передачи проверять контрольную сумму файла. (если данные действительно нужные) |
Re: Копирование файлов | |
---|---|
Nov Автор Сообщений: 39 Дата регистрации: 05.02.2005 |
2самсон
Да не хотелось бы делать "вечный" батник. Как-то это не очень надежное решение. |
Re: Копирование файлов | |
---|---|
Nov Автор Сообщений: 39 Дата регистрации: 05.02.2005 |
Для нее родимой. Ну если сеть отвалилась, то я это ловлю на передающей стороне и соответственно в лог-файле будет записано что архивация не прошла. А насчет контрольных кодов - ну да, это бы хорошо сделать, но это как раз работа и будет для COM-сервера. Я файл перекинул, COM-серверу просигналил, он мне CRC-код посчитает и вернет, ну а я соответственно протокол и запишу. Отредактировано (06.05.05 05:34) ------------------ |
© 2000-2024 Fox Club  |