2012-02-03 47 views
1

我正在考慮嘗試一個類的項目和作爲它的一部分,我將需要創建一個「磁盤」,以允許用戶寫一些文件(例如RAM磁盤)。我使用過各種語言,但我最熟悉Java(我可以使用C#並及時完成它)。我想知道可以做到這一點的是什麼。如何在Windows上使用Java創建虛擬磁盤(字母,共享等)?

我看過Commons VFS,JLAN和Alfresco,我可能可以使用後兩種,但我想知道是否有其他選項。現在,我正在研究Java 7,它閱讀了新的I/O,這可能會有所幫助......真的,我現在需要弄清楚的主要事情是繪製驅動器的方法。例如,AFAICT,Commons VFS會讓我訪問某個地方的文件(比如FTP),但是如何將這個訪問作爲驅動器盤符或者共享映射到這個映射中?

感謝

更新:更清楚,我想要做的(一般)爲創造這樣的Dropbox。我想在Windows中有一個驅動器盤符/共享,但是後端將是本地磁盤以外的東西(例如運行服務器組件的LAN上的另一臺計算機)。我需要至少編寫後端邏輯來傳輸數據,但我不確定如何將它「粘合」到Windows中,以使它看起來像是磁盤或網絡共享......似乎使用某種CIFS服務和將其暴露給操作系統可能是最有意義的。

回答

1

在純Java,您將不能創建一個客戶端應用程序,但必須創建講的東西的Windows已經知道如何安裝(CIFSWeb DAV例如)服務器應用程序。 WebDAV可能是最簡單的工作。

現在你在你的文章中提到了Dropbox。 Dropbox我不相信實際上會創建一個虛擬驅動器或文件夾,而是將內容複製到本地文件夾,並且監視器會說明文件夾的更改。如果選擇該路由,那麼Java有一個WatchService來處理它(完成tutorial)。您將不得不編寫客戶端和服務器端組件,但您的文件在離線時可用。

0

你可以試試微軟自己的RAM磁盤驅動器,它是否仍然適用於當前的Windows版本:http://support.microsoft.com/kb/257405

或者,如果你只需要一個驅動器號,請嘗試subst命令。

如果您確實需要編寫一個解決方案,我能想到的最簡單的方法是創建一個文件,在其中模擬您自己的簡單文件系統(記錄存儲)並提供一些用戶可以管理文件的界面。即一個虛擬文件系統。

我不知道當前的Windows版本是否具有與OS X的磁盤映像相同的功能,這將簡化您的工作。

這是有點不清楚你實際上需要做什麼。

2

您可以使用我們的Callback File System產品來創建一個虛擬文件系統,並通過NTFS磁盤上的驅動器盤符或文件夾將其公開。文件系統操作將由您的代碼處理,您將能夠將數據傳輸到雲端。這是幾十個客戶使用的場景。

相關問題