2013-02-08 16 views
0

我正在研究從一個特定文件夾讀取數據文件的小程序(我們稱之爲「數據文件夾」)。文件數量和名稱可以隨時間變化,所以我不想將它們嚴格地添加到代碼中。我希望能夠列出存儲在該文件夾中的所有文件(注意:文件夾與applet存儲在同一臺服務器上)。我試圖用Files.walkFileTree方法來做到這一點。它工作得很好,當我在Eclipse中運行它,但我得到AccessControlException:在Applet中使用Files.walkFileTree

java.security.AccessControlException: access denied ("java.io.FilePermission" "Data folder" "read") 

當我試圖在瀏覽器中運行。

我可以看到爲什麼要jvm限制在本地計算機上列出文件的applet,但是有可能列出存儲在服務器上的文件嗎?

回答

2

您必須區分客戶端和服務器端代碼。您的小程序在客戶端執行,因此無法使用Files.walkFileTree()直接訪問服務器的文件系統。 你可以做的是實現一個服務(比如REST服務或簡單的servlet),並在服務器端運行在Tomcat或Jetty servlet容器中,然後從你的applet調用這個服務。但要小心,以確保您的服務安全,因此不允許erveryone查看您的服務器的整個文件系統。

+0

謝謝,這很有道理:)我一直在想開發servlet來添加一些功能,現在我可以看到,我一定會這樣做。 – Przemek 2013-02-11 08:41:10