用普通的File是不是不能访问到另一台windows上的共享文件?这几天遇到一个问题, 用 new File("\\\\hostA\\folderA\\fileA").exists()查询另一台windows上的的共享文件是否存在总是返回false.
但如果远端计算机是Linux系统用Samba创建的共享文件夹的文件则可以找到此文件。以前好像遇到过类似的问题,需要用到另外Samba的库来访问共享文件,File类好像不支持
但是这回为什么如果远端机器是Linux就可以访问呢,到底File类支不支持\\hostA\folderA\fileA这种访问方法??
但如果远端计算机是Linux系统用Samba创建的共享文件夹的文件则可以找到此文件。以前好像遇到过类似的问题,需要用到另外Samba的库来访问共享文件,File类好像不支持
但是这回为什么如果远端机器是Linux就可以访问呢,到底File类支不支持\\hostA\folderA\fileA这种访问方法??
new File("file:\\\\hostA\\folderA\\fileA");
我也稍有点印象,但是记不大清楚了。
但是看来File类是支持这个远程共享文件访问的现在不知道是windows共享设置的问题还是Java的访问路径组织问题
但windows共享设置真的看起来没问题了,所以更相信是在Java这边访问时的问题
也许是你写的有问题也说不定。
if (new File(fileName).exists()){...}
else {...}
net share
这个是本机所有的共享。
你看看你写的共享名对么?
或者别用那个exists判断,直接取这个文件用。
这个exists方法有时候也不好用的。
http://java.chinaitlab.com/net/803563.html
有例子,测试了下,能运行。
可能是你 windows 的权限问题
很感动!!
哈哈
我会试试大家的建议
还有abc130314能不能告诉我你jre的版本和windows共享的具体设置么?
最后还是权限问题
验证这个共享文件是否存在其实是在一个servlet中
而容器tomcat是以System作为用户启动的服务
所以很自然的他没有权限访问其他计算机上的共享文件
结帖了
但是很奇怪的是用tomcat Monitor不能以其他用户启动tomcat
我再开个帖子,有了解的请继续给我点帮助