Копировать внешний HDD - PullRequest
       15

Копировать внешний HDD

0 голосов
/ 08 февраля 2010

Я хочу написать приложение. (если возможно, через Интернет), чтобы скопировать внешний жесткий диск (уже разделенный и содержащий данные) на аналогичный жесткий диск с теми же разделами - кто-нибудь думает, что это возможно с Java (Google App Engine? Чтобы преобразовать приложение Java и запустить его в веб-среда? Или аналогично)

Мысли о том, если что-то думает, что это возможно на определенном языке, были бы очень полезны! PS. Я думаю, что одним из самых больших ограничений было бы то, где данные будут помещаться между загрузкой с одного диска и загрузкой на следующий - поэтому, например, мне нужно будет установить временную переменную. каталог на локальном внутреннем жестком диске пользователя, перенести содержимое внешнего, затем направить окончательный процесс перемещения этих данных обратно на новый внешний!

PS. Я также знаю марку, размер диска, который я буду использовать.

Ответы [ 3 ]

5 голосов
/ 08 февраля 2010

Вы не должны пытаться сделать это в веб-приложении, IMO. Вы будете заблокированы ограничениями безопасности песочницы, если вы сделаете это в ненадежном веб-приложении / апплете. И просить пользователей открыть систему безопасности, чтобы позволить вашему приложению сделать это, это слишком опасно ... для них.

Массовое копирование файлов лучше всего выполнять с помощью встроенных инструментов ОС.

1 голос
/ 08 февраля 2010

Ну, теоретически вы можете сделать это на Java как Java-апплет. Но апплет должен быть подписан, и пользователь должен утвердить ограничения безопасности для апплета. Может быть проблематично копировать тот же самый жесткий диск ОС, если вы пытаетесь делать побитовое копирование.

Если вам нужна побитовая копия диска ОС, вы должны загрузиться с внешнего устройства CDROM / USB, чтобы предварительно выполнить копирование, и тогда лучшим языком для записи будет C / C ++.

Если вы не ищете побитовое копирование, вы можете просто скопировать файлы, и это может быть достигнуто даже с использованием JavaScript с объектом shell.scripting.

0 голосов
/ 08 февраля 2010

Вы не указали все требования, но (обычно) вы не можете сделать это в веб-приложении, потому что:

  • Вам нужны права доступа (хорошо, возможно, но ...)
  • Вам нужна скорость
  • Данные меняются во время копирования? Если да, то как? Если файлы добавляются / удаляются, вам необходимо зарегистрировать наблюдатель на диске (что означает конкретный вызов API для конкретной платформы - очень маловероятно, что он будет доступен на любом веб-языке - Java, PHP и т. Д.), Чтобы увидеть, какие файлы должны быть копируется после того, как вы уже отсканировали место, в котором новый файл добавлен / удален. Если файлы могут быть «чем угодно» и изменены «случайным образом» в процессе копирования, то у вас проблемы. Потому что вы можете скопировать файл, который находится в несогласованном состоянии. Этот случай редок, но может случиться. Особенно, если вы хотите отразить какие-то специальные жесткие диски (например, основной диск - диск с ОС).

Кроме того, при изменении файлов на исходном диске возникают и другие хитрости (в разных приложениях используются разные механизмы хранения, которые имеют разные схемы сохранения файла).

Если диски «заморожены», значит, все в порядке. Вы можете сделать простое копирование файла (но также остерегайтесь, если вам нужно скопировать атрибуты файла, потоки файлов и т. Д.).

Но если нет, я бы посоветовал вам купить готовое приложение для этой задачи, например , это .

...