【问题标题】:How can I create a virtual disk (letter, share, etc.) on Windows using Java?如何使用 Java 在 Windows 上创建虚拟磁盘(信函、共享等)?
【发布时间】:2012-02-25 17:46:08
【问题描述】:

我正在尝试一个类项目,作为其中的一部分,我需要创建一个“磁盘”以允许用户写入一些文件(例如 RAM 磁盘)。我使用过各种语言,但我最熟悉 Java(我可能会使用 C# 并及时完成)。我想知道有什么可以做到这一点。

我查看了 Commons VFS、JLAN 和 Alfresco,我也许可以使用后两者,但我想知道是否还有其他选择。现在我正在研究 Java 7,我读到的 Java 7 有新的 I/O 内容可能会有所帮助……我现在需要弄清楚的主要事情是一种映射驱动器的方法。例如,AFAICT、Commons VFS 可以让我在某处访问文件(如 FTP),但我如何将这种访问呈现为驱动器号或共享它可以映射?

谢谢

更新:更清楚地说,我想要做的(通常)是创建类似于 Dropbox 的东西。我想在 Windows 中有一个驱动器号/共享,但后端将不是本地磁盘(就像 LAN 上运行服务器组件的另一台机器)。我至少需要对后端逻辑进行编码以传输数据,但我不确定如何将其“粘合”到 Windows 中,使其看起来像是磁盘或网络共享......似乎使用某种 CIFS 服务和将其暴露给操作系统可能最有意义。

【问题讨论】:

    标签: c# java virtual drive hard-drive


    【解决方案1】:

    您可以使用我们的Callback File System 产品创建一个虚拟文件系统,并通过驱动器号或 NTFS 磁盘上的文件夹公开它。文件系统操作将由您的代码处理,您将能够将数据传输到云端。这是我们的几十个客户使用的场景。

    【讨论】:

      【解决方案2】:

      在纯 Java 中,您将无法创建客户端应用程序,但必须创建一个服务器应用程序,该应用程序能够说出 Windows 已经知道如何挂载的内容(例如 CIFSWeb DAV)。 WebDAV 可能是最容易使用的。

      现在您在帖子中提到了 Dropbox。 Dropbox 我不相信实际上会创建虚拟驱动器或文件夹,而是将内容复制到本地文件夹,然后监视器说文件夹进行更改。如果您选择该路由,则 Java 有一个 WatchService 来处理它(与 tutorial 一起完成)。您必须编写客户端和服务器端组件,但您的文件将在您离线时可用。

      【讨论】:

        【解决方案3】:

        您可以尝试微软自己的 RAM 磁盘驱动程序,如果它仍然适用于当前 Windows 版本:http://support.microsoft.com/kb/257405

        或者,如果您只需要驱动器号,请尝试使用 subst 命令。

        如果您确实需要编写解决方案,我能想到的最简单的方法是创建一个文件,您可以在其中模拟您自己的简单文件系统(记录存储)并提供一些用户可以管理文件的界面。 IE。一个虚拟文件系统。

        我不知道当前的 Windows 版本是否有相当于 OS X 的磁盘映像,这会为您简化事情。

        您实际上需要做什么有点不清楚。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2021-10-20
          • 1970-01-01
          • 2017-07-21
          • 2017-09-21
          • 2015-01-10
          • 2018-02-23
          • 1970-01-01
          相关资源
          最近更新 更多