【问题标题】:Copy external HDD复制外部硬盘
【发布时间】:2011-01-14 06:28:04
【问题描述】:

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

如果有人认为这在某种语言中是可能的,那么思考一下会非常有帮助! PS。我认为最大的限制之一是数据在从一个驱动器下载和上传到下一个驱动器之间的位置 - 例如,我需要建立一个临时驱动器。用户本地内部硬盘上的目录,传输外部的内容,而不是指导将数据移回新外部的最终过程!

附言。我也知道我将使用的驱动器的品牌和尺寸。

【问题讨论】:

    标签: java driver javascript hard-drive drive


    【解决方案1】:

    您不应该尝试在 web 应用程序中执行此操作,IMO。如果您在不受信任的 web 应用程序/小程序中执行此操作,您将被沙盒安全限制阻止。并且要求用户打开安全性让您的应用这样做太危险了……对他们来说。

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

    【讨论】:

    • 是的,这会容易得多,但我想限制用户可以使用该应用程序的次数。因此他们必须在购买许可证后批准安全限制。
    • 恶心!如果我是客户,我想我会要求退款!
    • 这并没有解决问题。虽然许多人会同意 Steven C 的评估。这个答案没有解决“如何”
    【解决方案2】:

    嗯,理论上您可以在 Java 中将其作为 Java Applet 来实现。但是小程序必须经过签名并且用户必须批准小程序的安全限制。如果您尝试逐位复制,则复制同一操作系统的硬盘可能会出现问题。

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

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

    【讨论】:

    • Java Applet 中的 jUSB,假设用户愿意批准安全限制(不太了解“签署”小程序——有什么建议吗?不确定您所说的“一点一点”是什么意思复制,但数据几乎是一个大块文件,专为与另一个文件系统一起使用而设计——(而且我不是要复制 OS 磁盘)。
    【解决方案3】:

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

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

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

    如果磁盘被“冻结”,那么你就可以了。您可以进行简单的文件复制(但如果您需要复制文件属性、文件流等,也要小心)。

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

    【讨论】:

    • 感谢您的回复。 1.)我一直在阅读有关 jUSB(用于 Java)的信息——因为最终驱动器将是使用 USB-SATA 适配器连接的外部硬盘驱动器。你觉得这怎么样?一旦我能够使用某种 USB 主机控制器连接到 HDD,它就会像任何其他 USB 设备一样工作。 2.)文件系统基本上是大数据块,一个简单的文件结构必须复制,但我知道每个分区的开始和结束位置。 3.) 使用网络应用程序的原因。真的是许可吗?我想控制用户可以使用许可数据库制作的副本数量。
    • 那么,事实上,数据在复制过程中并没有发生变化?这是问题的症结所在。
    猜你喜欢
    • 2020-12-13
    • 2011-01-21
    • 1970-01-01
    • 2017-04-06
    • 2011-09-03
    • 2015-12-17
    • 2017-02-21
    • 1970-01-01
    • 2012-10-13
    相关资源
    最近更新 更多