(转)JAVA网络驱动器读写文件(TOMCAT + WIN2003报找不到文件异常)

(转)JAVA网络驱动器读写文件(TOMCAT + WIN2003报找不到文件错误)


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("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");

首先来看code1,一般的情况下我们会使用这种方式来创建不存在的目录,如果Z盘符是通过windows共享的文件,然后映射到本地的盘符时,这个时候就不能创建成功,即使是这个目录不存在. 

这个时候把代码改成code2,这样就是能创建成功了,但是把这些code2放在win2003上,而且是部署到tomcat上,这个时候发现根本就不能创建成功.但是我在win2003对这个网络的映射出来的盘符是有读写的权限的,当我在win2003上使用cmd去运行同样的code,耶,居然能创建. 

这个时候在网上看到:windows2003的安全比较高,所以本身屏蔽了比较多的服务,而且对登录程序的用户也又限制.默认的登录tomcat的帐户应该是system用户(没有具体查证),本地帐户不具有访问网络的权限.于是我把tomcat的登录用户改成administrator,但是还是没有解决,汗. 

于是换成code3,OK,居然可以创建目录,即使这个时候tomcat的登录用户是普通的登录用户. 

还有个问题是,当是网络驱动器上的目录时,使用f.createNewFile();这个时候老是报IOException,呵呵,不过现在时间比较紧,用空也可以研究下.