复制外部硬盘

时间:2010-02-08 06:51:08

标签: java driver javascript hard-drive drive

我想写一个应用程序。 (如果可能的话,基于网络)将外部硬盘驱动器(已经分区并包含数据)复制到具有相同分区的类似硬盘驱动器 - 有人认为这可以用Java(谷歌应用程序引擎)转换Java应用程序并运行网络环境?或者同样)

如果有人认为用某种语言可以做到这一点的想法会非常有帮助! PS。我认为最大的限制之一就是数据在从一个驱动器下载和上传到下一个驱动器之间的位置 - 例如我需要建立一个临时值。用户本地内部硬盘上的目录,传输外部的内容,比直接将数据移动到新外部的最终过程!

PS。我也知道我将使用的品牌,驱动器尺寸。

3 个答案:

答案 0 :(得分:5)

你不应该试图在网络应用程序,IMO中这样做。如果您在不受信任的webapp / applet中执行此操作,则会被沙箱安全限制阻止。并且要求用户打开安全性以让您的应用程序执行此操作对他们来说太危险了。

批量文件复制最好使用本机操作系统工具完成。

答案 1 :(得分:1)

好吧,理论上你可以用Java作为Java Applet来实现。但必须对Applet进行签名,并且用户必须批准applet的安全限制。如果您尝试逐位复制,则复制操作系统的同一硬盘可能会出现问题。

如果您想要逐位复制OS光盘,则必须从外部CDROM / USB设备启动以执行复制,然后编写它的最佳语言将是C / C ++。

如果您没有搜索逐位复制,那么您可以复制文件,即使使用带有shell.scripting对象的JavaScript也可以完成。

答案 2 :(得分:0)

您没有指定所有要求,但(通常)您无法在Web应用中执行此操作,因为:

  • 您需要访问权限(确定,但可能......)
  • 你需要速度
  • 复制过程中数据是否在变化?如果是,那怎么样?如果添加/删除文件,则需要在驱动器上注册一个观察程序(这意味着具体的特定于平台的API回调 - 几乎不可能在任何Web语言中使用 - Java,PHP等)以查看需要的文件在您已经扫描了添加/删除新文件的位置之后复制。如果文件可以是“任何”并且在复制过程中“随机”修改那么你就会遇到麻烦。因为您可以复制处于不一致状态的文件。这种情况很少见,但可能会发生。特别是如果你想要镜像某种特殊硬盘(例如主驱动器 - 带有操作系统的驱动器)。

此外,当源磁盘上的文件发生变化时还会涉及其他技巧(不同的应用程序具有不同的存储引擎,这些存储引擎在保存文件时具有不同的模式)。

如果磁盘被“冻结”,那么你没问题。您可以执行简单的文件复制(但如果需要复制文件属性,文件流等,也要注意。)。

但如果没有,我建议你为这项任务购买现成的应用程序,如this one