1

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

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

谢谢

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

4

3 回答 3

2

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

于 2014-01-21T09:11:02.263 回答
1

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

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

于 2014-01-21T10:05:02.147 回答
0

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

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

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

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

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

于 2012-02-03T03:42:03.247 回答