Java局域网文件访问(通过command命令)

本文介绍了一种通过Java程序访问局域网内带有密码保护的共享文件的方法。该程序利用了Windows系统的net use命令进行连接,并展示了如何处理可能发生的错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

访问局域网内一台IP为1.2.3.4的机器上的共享文件。需要提供登录用户和密码。

一个简单的操作。当时主要是为了访问有密码访问限制的用户文件来设计的。为了安全考虑。

仅供参考!有什么不对的地方请指正。

其实,还想实现一个非局域网内文件的访问。比如说我的机器如果要访问机器A,需要穿防火墙的操作,防火墙有用户名密码等

设置,一直不知道该怎么实现。有人说用socket可以实现。还没关注过,等有时间的时候再考虑下。

  1. import java.io.BufferedReader;
  2. import java.io.File;
  3. import java.io.InputStream;
  4. import java.io.InputStreamReader;
  5. public class GetShareFile {
  6.     public static void main(String[] args) throws Exception{
  7.         String shareDirectoryName = "ShareDoc";
  8.         String host = "1.2.3.4";//需要访问的主机host
  9.         String username = "administrator";//访问用户
  10.         String password = "password";//密码
  11.         String path = ""+host+"//"+shareDirectoryName ;//访问路径
  12.         if(username != null && username.trim().length()>0){
  13.             Runtime runtime = Runtime.getRuntime();
  14.             String command = "net use "+path+" "+" /delete";
  15.             Process p = runtime.exec(command);
  16.             command = "net use "+path+" "+password+" /"+"user:"+username ;
  17.             p = runtime.exec(command);
  18.             
  19.             InputStream stderr=p.getErrorStream();
  20.             InputStreamReader isr=new InputStreamReader(stderr);
  21.             BufferedReader br=new BufferedReader(isr);
  22.             String line="";
  23.             StringBuffer errorsb = new StringBuffer() ;
  24.             while(line!=null){
  25.                 line = br.readLine();
  26.                 if(line != null) errorsb.append(line);  
  27.             }
  28.             if(errorsb != null && errorsb.toString().trim().length()>0) {
  29.                 System.out.println(errorsb.toString());
  30.                 throw new Exception(errorsb.toString());
  31.             }
  32.             
  33.             File dir=new File(path);
  34.             if(dir.exists() && dir.isDirectory()){
  35.                 File[] tmp=dir.listFiles();
  36.                 for(File file:tmp){
  37.                     System.out.println(file.getName());
  38.                 }
  39.             }else{
  40.                 if(dir.exists()){
  41.                     System.out.println(dir.getName());
  42.                 }
  43.             }
  44.             
  45.             
  46.         }
  47.     }
  48. }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值