java 制定下载局域网共享文件
说明:用到第三方JAR包“jcifs-1.3.17.jar”
1、读取局域网文件类
<br />
import java.io.FileOutputStream;
import jcifs.smb.SmbFile;
import jcifs.smb.SmbFileInputStream;
/**
* 功能 :下载局域网内指定IP地址计算机上的文件<br>rr
* 需要获取:共享文件夹名称、用户组、用户名、用户密码
* @author Administrator
*
*/
public class LoadRemoteFile {
/**
* 说明
* @param WORKGROUP_USER_PASSWORD_IP_SHAREDIR_LOADFILE<br>
* 格式:smb://WORKGROUP;USER:PASSWORD@IP/SHAREDIR/LOADFILE<br>
* 例如:<br>
* 1、smb://WORKGROUP;administrator:y195811@192.168.8.250/graphxx/load.INI<br>
* 2、无需用户名密码://192.168.8.250/graphxx/load.INI<br>
* 3、需用户名密码 :Smb://username:password@ip/sharefolder
* @param LOCALFILE<br>
* 例如:F:/LoadFile/load.ini
*/
public LoadRemoteFile(String WORKGROUP_USER_PASSWORD_IP_SHAREDIR_LOADFILE,String LOCALFILE )
{
loadRemoteFile(WORKGROUP_USER_PASSWORD_IP_SHAREDIR_LOADFILE,LOCALFILE);
}
/*
private String remoteWorkgroup="WORKGROUP";
private String remoteUser="administrator";
private String remotePassword="y195811";
private String remoteIp="192.168.8.250";
private String remoteShareDir="/graphxx/";
private String remoteLoadFile="DATABASE2.INI";
private int remoteFileLength=0;
private String localDir="F:/LoadFile/";
private String remote="smb://"+remoteWorkgroup+";"+remoteUser+":"+remotePassword
+"@"+remoteIp+remoteShareDir+remoteLoadFile;
private String localLoadFile="DATABASE2.INI";
*/
/**
* 下载指定计算机(IP)共享文件夹文件
* @param remoteUrl : 局域网其他计算机地址
* @param localUrl : 本机文件地址 例如: c:/
*/
public void loadRemoteFile(String remoteUrl,String localUrl)
{
try {
//远程文件链接
SmbFile f=new SmbFile(remoteUrl);
if(f==null)return;
//获取远程文件大小
int remoteFileLength=f.getContentLength();
//存放文件内容数组
byte[] fsize=new byte[remoteFileLength];
SmbFileInputStream remoteInput=new SmbFileInputStream(f);
FileOutputStream loadFile=new FileOutputStream(localUrl);
while(-1!=remoteInput.read(fsize)){
loadFile.write(fsize);
}
loadFile.close();
remoteInput.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
2、测试下载局域网文件
/**
* 功能:测试下载指定IP地址计算机上的文件
* 条件:共享文件夹、用户组、用户名、用户密码
*/
public class RemoteFileLoadTest {
static void print(String str)
{
System.out.println(str);
}
private String remoteWorkgroup="WORKGROUP";
private String remoteUser="administrator";
private String remotePassword="y195811";
private String remoteIp="192.168.8.250";
private String remoteShareDir="/graphxx/";
private String remoteLoadFile="DATABASE2.INI";
private String localDir="";
public RemoteFileLoadTest()
{
String remote="smb://"+remoteWorkgroup+";"+remoteUser+":"+remotePassword
+"@"+remoteIp+remoteShareDir+remoteLoadFile;
localDir="F:/LoadFile/";
String local=localDir+remoteLoadFile;
new LoadRemoteFile(remote,local);
}
public static void main(String[] args)
{
new RemoteFileLoadTest();
}
}
</pre>