2012-12-03 47 views
1
String sharedLocation = "\\\\hostname" 

new File(sharedLocation).list()返回null。 exists()也返回false。我不知道這是否與權限有關。我在Windows上運行腳本。如何閱讀共享位置上的文件/文件夾列表?

相反,當我通過Windows中打開 - >運行並輸入\\主機名,共享文件夾被列爲自動完成,在運行窗口的下拉的一部分。爲什麼我不能用我的java/groovy腳本來做同樣的事情?有沒有辦法做到這一點?

編輯:請原諒錯字。反斜槓已經逃脫。

+0

您需要轉義反斜槓。試試「\\\\ hostname」,看看它是否適合你。 – Manish

回答

1

字符串中的反斜槓解析爲\hostname。如果你想獲得\\hostname,你必須有兩個反斜線和逃避他們正確

String sharedLocation = "\\\\hostname" 

File是現有的文件,但\\hostname不是一個文件或目錄,而只是它的一部分。當你使用\\hostname\share時,你可以在list()這個共享中的所有文件。

對於上市股票,你可以看看這個答案https://stackoverflow.com/a/8480995/1741542,這表明使用The Java CIFS Client Library

使用listRoots您可以看到已經安裝的份額。

+0

編輯了這個問題,我居然試過用逃脫\ \。 –

+0

@VamsiEmani請看我更新的答案。 –