访问局域网内一台IP为1.2.3.4的机器上的共享文件。需要提供登录用户和密码。
一个简单的操作。当时主要是为了访问有密码访问限制的用户文件来设计的。为了安全考虑。
仅供参考!有什么不对的地方请指正。
其实,还想实现一个非局域网内文件的访问。比如说我的机器如果要访问机器A,需要穿防火墙的操作,防火墙有用户名密码等
设置,一直不知道该怎么实现。有人说用socket可以实现。还没关注过,等有时间的时候再考虑下。
- import java.io.BufferedReader;
- import java.io.File;
- import java.io.InputStream;
- import java.io.InputStreamReader;
- public class GetShareFile {
- public static void main(String[] args) throws Exception{
- String shareDirectoryName = "ShareDoc";
- String host = "1.2.3.4";//需要访问的主机host
- String username = "administrator";//访问用户
- String password = "password";//密码
- String path = ""+host+"//"+shareDirectoryName ;//访问路径
- if(username != null && username.trim().length()>0){
- Runtime runtime = Runtime.getRuntime();
- String command = "net use "+path+" "+" /delete";
- Process p = runtime.exec(command);
- command = "net use "+path+" "+password+" /"+"user:"+username ;
- p = runtime.exec(command);
- InputStream stderr=p.getErrorStream();
- InputStreamReader isr=new InputStreamReader(stderr);
- BufferedReader br=new BufferedReader(isr);
- String line="";
- StringBuffer errorsb = new StringBuffer() ;
- while(line!=null){
- line = br.readLine();
- if(line != null) errorsb.append(line);
- }
- if(errorsb != null && errorsb.toString().trim().length()>0) {
- System.out.println(errorsb.toString());
- throw new Exception(errorsb.toString());
- }
- File dir=new File(path);
- if(dir.exists() && dir.isDirectory()){
- File[] tmp=dir.listFiles();
- for(File file:tmp){
- System.out.println(file.getName());
- }
- }else{
- if(dir.exists()){
- System.out.println(dir.getName());
- }
- }
- }
- }
- }