2012-12-03 19 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请看我更新的答案。 –