2011-09-21 14 views
0

在Java中,嘗試按如下方式創建文件對象時,是否可以使用通配符指定目錄?在通用字符指定的目錄內用Java打開文件

File newFile = new File("\temp\*\path"); 

在這種情況下,該目錄是由一些代碼另一部分,我沒有獲得,這使時間戳的名稱創建。所以這個問題將被解決,如果我可以把*代替時間戳,如

File newFile = new File("\temp\dirname-*\path"); // * is timestamp when directory was created. 

感謝您的任何幫助。

回答

1

如果你是一名程序員,你應該瞭解像「我確信在該地點存在單個目錄」這樣的語句,直到它們是假的(並且它們在某個點上是假的)將是真實的。

執行查看\temp\的工作,確認只有一個目錄,然後用正確的路徑打開文件。然後,當前提條件不成立時,您可以拋出異常或顯示消息。

+0

好吧,事情是這個目錄是由別人的代碼創建的,它運行在我運行我的之前。另外,只有創建目錄的第一個塊成功運行時,我才能運行我的代碼。所以我確定該目錄存在,我不想訪問任何隨機目錄。 – rgamber

+0

@rgamber,那麼爲什麼你需要'*'如果它不是一個隨機目錄:)? –

+0

@ AndreyAdamovich,目錄名稱基於時間戳。我無法精確地假設創作時間。雖然如果我能夠在時間戳的位置放置通配符,那麼問題就解決了。我應該在問題中提到這一點! – rgamber

0

不,不可能在Java文件名中使用通配符。

您需要自己解決路徑,但並不難。

您可能會發現

new java.io.File("/tmp").listFiles(); 

一個有趣的地方開始。

1

按照您所述創建它是不可能的。但是,可以編寫一個算法來搜索符合描述的文件。在你的情況下,你需要創建一個new File("temp"),然後遞歸搜索其子節點(對於isDirectory方法返回true的任何文件,使用listFiles),對於名爲"path"的文件進行搜索。

+0

感謝您的建議。 – rgamber

相關問題