2013-10-01 59 views
1

第一個:將一個文件夾中的所有文件保存在一個罐子裏

我知道,這個問題已被問到100次了。 我知道,有人已經可以給出正確的答案。我不得不再次問這個。我沒有找到適合我的解決方案。抱歉。

我正在用java寫一個遊戲。當然,我有很多包裝(文件夾)有聲音和圖片等等。但是這些文件夾的大小各不相同。所以我想將這樣的文件夾的內容動態保存在列表中。

通常情況下,我正在此:

File f[] = new File(getClass.getResource("/home/res/").toURI()).listFiles(); 

現在我可以遍歷雖然此文件對象,並保存每個文件。完善。真?

不。當我將這個項目解壓縮到一個jar包時,失敗了。所有這些都是因爲一個uri不是「等級」或者這樣的東西。看到這個異常:

C:\Users\Administrator\Desktop>java -jar Homework.jar 
java.lang.IllegalArgumentException: URI is not hierarchical 
     at java.io.File.<init>(Unknown Source) 
     at homework.moonface.src.Moonface.loadSounds(Moonface.java:94) 
     at homework.moonface.src.Moonface.<init>(Moonface.java:55) 
     at control.Overview.main(Overview.java:16) 

好吧,我想,所以我需要得到這個路徑,並將其添加到手冊文件對象。 (新的文件(「路徑」);但是...這是行不通的。我得到已知錯誤,輸入不正確寫入,或者當我嘗試從資源url中「file:」剪切,它打破了,因爲在一個jar中它的「jar:file:」而不是「file:」。但是,如果我切割jar:file:我得到null。

所以,請不要標記爲一式二份,並試圖解釋這種短期內對我來說這將有助於其他一千,誰不明白其他的解決方案誰不解決

+0

不要求可惜,不要吮吸。如果你問了一個適當的問題並提供了適當的細節(比如你似乎有),有人會幫助你。 –

+0

需要說明的是:你有一堆你想要寫入文件系統的文件? –

+0

學習「Ant」的時間。使用Ant腳本,您可以管理您的所有資源 –

回答

1

試試這個:。

URL jarResourceURL = getClass().getResource("/home/res/"); 
    JarURLConnection jarURLConnection = (JarURLConnection) jarResourceURL.openConnection(); 
    Enumeration<JarEntry> entries = jarURLConnection.getJarFile().entries(); 
    while (entries.hasMoreElements()){ 
     entries.nextElement(); // iterate over entries and do something 
    } 

UPD:我正在考慮如何pring框架的ClassPathXmlApplicationContext從jar中解析資源。所以我調查了源代碼和foud,有一個實用程序類org.springframework.core.io.ClassPathResource,它有一個方便的界面(此外有可能獲得相應的使用它的java.io.File實例),並可以幫助您解決問題。這裏是文檔: http://docs.spring.io/spring/docs/2.5.x/api/org/springframework/core/io/ClassPathResource.html

+1

得到此異常: 'java.lang.ClassCastException:sun.net.www.protocol.file.FileURLConnection不能homework.moonface.src.Moonface.loadSounds被轉換爲java.net.JarURLConnection中\t( Moonface.java:93) \t at homework.moonface.src.Moonface。 (Moonface.java:55) \t at control.Overview.main(Overview.java:16)' –

+0

您是否嘗試過使用不在jar中的classpath成員? –

+0

不大,但資源必須在罐子..或者你是什麼意思? –

相關問題