(转)JAVA网络驱动器读写文件(TOMCAT + WIN2003报找不到文件异常)
首先来看code1,一般的情况下我们会使用这种方式来创建不存在的目录,如果Z盘符是通过windows共享的文件,然后映射到本地的盘符时,这个时候就不能创建成功,即使是这个目录不存在.
File f = new File("z:/iamge");
if(f.mkdir())
System.out.println("success");
code2:
File cs = new File("z:/image");
File f = new File(cs.getAbsolutePath());
if(f.mkdir())
{ System.out.println("s
code1:
File f = new File("z:/iamge");
if(f.mkdir())
System.out.println("success");
code2: File cs = new File("z:/image");
File f = new File(cs.getAbsolutePath());
if(f.mkdir())
{ System.out.println("success"); }
code3: File cs = new File("//192.168.1.111/test/image");
File f = new File(cs.getAbsolutePath());
if(f.mkdir())
System.out.println("success");
这个时候把代码改成code2,这样就是能创建成功了,但是把这些code2放在win2003上,而且是部署到tomcat上,这个时候发现根本就不能创建成功.但是我在win2003对这个网络的映射出来的盘符是有读写的权限的,当我在win2003上使用cmd去运行同样的code,耶,居然能创建.
这个时候在网上看到:windows2003的安全比较高,所以本身屏蔽了比较多的服务,而且对登录程序的用户也又限制.默认的登录tomcat的帐户应该是system用户(没有具体查证),本地帐户不具有访问网络的权限.于是我把tomcat的登录用户改成administrator,但是还是没有解决,汗.
于是换成code3,OK,居然可以创建目录,即使这个时候tomcat的登录用户是普通的登录用户.
还有个问题是,当是网络驱动器上的目录时,使用f.createNewFile();这个时候老是报IOException,呵呵,不过现在时间比较紧,用空也可以研究下.