Windows Share (SMB)에 복사하는 개미 작업
문제
파일 세트를 Windows (SMB) 공유에 복사 할 수있는 개미 작업 (FTP 또는 SCP 작업과 유사)이 있습니까?
편집 :이를 위해 JCIF를 사용하여 작업을 만들어야했습니다. 누구든지 필요한 경우 코드가 있습니다.
JCIF 및 Apache Ioutil에 따라 다릅니다.
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import jcifs.smb.SmbFile;
import org.apache.commons.io.IOUtils;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Task;
import org.apache.tools.ant.taskdefs.Copy;
public class SmbCopyTask extends Task
{
private File src;
private String tgt;
public void execute() throws BuildException
{
try
{
recursiveCopy(src);
}
catch (Exception e)
{
throw new BuildException(e);
}
}
public void recursiveCopy(File fileToCopy) throws IOException
{
String relativePath = src.toURI().relativize(fileToCopy.toURI()).getPath();
SmbFile smbFile = new SmbFile(tgt, relativePath);
if(!smbFile.exists())
{
smbFile.createNewFile();
}
if(!fileToCopy.isDirectory())
{
System.out.println(String.format("copying %s to %s", new Object[]{fileToCopy, smbFile}));
IOUtils.copy(new FileInputStream(fileToCopy), smbFile.getOutputStream());
}
else
{
File[] files = fileToCopy.listFiles();
for (int i = 0; i < files.length; i++)
{
recursiveCopy(files[i]);
}
}
}
public void setTgt(String tgt)
{
this.tgt = tgt;
}
public String getTgt()
{
return tgt;
}
public void setSrc(File src)
{
this.src = src;
}
public File getSrc()
{
return src;
}
}
해결책
나는 그것에 대한 상자에 대한 작업이 있다고 생각하지 않지만, 당신은 주위에 쉽게 하나를 만들 수 있습니다. JCIFS (삼바 라이브러리의 Java 구현).
다른 팁
당신은 그냥 사용할 수 있어야합니다 복사 공유가 장착되는 한 작업.
Eclipse (Wind 나는 명령 줄에서 ANT와 동일한 작품을 내기합니다.
<copy todir="//server_name/share_name" overwrite="true" verbose="true">
<fileset dir="./WebContent">
<patternset refid="sources"/>
<different targetdir="//server_name/share_name" ignoreFileTimes="true"/>
</fileset></copy>
제휴하지 않습니다 StackOverflow