문제

파일 세트를 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>
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top