示例#1
1
 private void connectFtpServer() {
   try {
     ftpClient = new FTPClient();
     FTPClientConfig ftpClientConfig = new FTPClientConfig();
     ftpClientConfig.setServerTimeZoneId(TimeZone.getDefault().getID());
     ftpClient.configure(ftpClientConfig);
     URL url = getURL();
     if (url.getPort() <= 0) {
       ftpClient.connect(url.getHost());
     } else {
       ftpClient.connect(url.getHost(), url.getPort());
     }
     if (!FTPReply.isPositiveCompletion(ftpClient.getReplyCode())) {
       throw new VFSRuntimeException("连接失败!");
     }
     if (url.getUserInfo() != null) {
       String userInfo[] = url.getUserInfo().split(":");
       String userName = null;
       String password = null;
       if (userInfo.length >= 1) {
         userName = userInfo[0];
       }
       if (userInfo.length >= 2) {
         password = userInfo[1];
       }
       if (!ftpClient.login(userName, password)) {
         throw new VFSRuntimeException("登录失败:" + url.toString());
       }
       if (!ftpClient.setFileType(FTP.BINARY_FILE_TYPE)) {
         throw new VFSRuntimeException("设置二进制类型失败");
       }
       ftpClient.setBufferSize(BUF_SIZE);
       ftpClient.setControlEncoding("utf-8");
     }
   } catch (Exception e) {
     throw new VFSRuntimeException(e);
   }
 }
  /**
   * configures the supplied FTPClient with the various attributes set in the supplied FTP task.
   *
   * @param client the FTPClient to be configured
   * @param task the FTP task whose attributes are used to configure the client
   * @return the client as configured.
   */
  static FTPClient configure(FTPClient client, FTPTaskConfig task) {
    task.log("custom configuration", Project.MSG_VERBOSE);
    FTPClientConfig config;
    String systemTypeKey = task.getSystemTypeKey();
    if (systemTypeKey != null && !"".equals(systemTypeKey)) {
      config = new FTPClientConfig(systemTypeKey);
      task.log("custom config: system key = " + systemTypeKey, Project.MSG_VERBOSE);
    } else {
      config = new FTPClientConfig();
      task.log("custom config: system key = default (UNIX)", Project.MSG_VERBOSE);
    }

    String defaultDateFormatConfig = task.getDefaultDateFormatConfig();
    if (defaultDateFormatConfig != null) {
      config.setDefaultDateFormatStr(defaultDateFormatConfig);
      task.log(
          "custom config: default date format = " + defaultDateFormatConfig, Project.MSG_VERBOSE);
    }

    String recentDateFormatConfig = task.getRecentDateFormatConfig();
    if (recentDateFormatConfig != null) {
      config.setRecentDateFormatStr(recentDateFormatConfig);
      task.log(
          "custom config: recent date format = " + recentDateFormatConfig, Project.MSG_VERBOSE);
    }

    String serverLanguageCodeConfig = task.getServerLanguageCodeConfig();
    if (serverLanguageCodeConfig != null) {
      if (!"".equals(serverLanguageCodeConfig)
          && !FTPClientConfig.getSupportedLanguageCodes().contains(serverLanguageCodeConfig)) {
        throw new BuildException("unsupported language code" + serverLanguageCodeConfig);
      }
      config.setServerLanguageCode(serverLanguageCodeConfig);
      task.log(
          "custom config: server language code = " + serverLanguageCodeConfig, Project.MSG_VERBOSE);
    }

    String serverTimeZoneConfig = task.getServerTimeZoneConfig();
    if (serverTimeZoneConfig != null) {
      config.setServerTimeZoneId(serverTimeZoneConfig);
      task.log("custom config: server time zone ID = " + serverTimeZoneConfig, Project.MSG_VERBOSE);
    }

    String shortMonthNamesConfig = task.getShortMonthNamesConfig();
    if (shortMonthNamesConfig != null) {
      config.setShortMonthNames(shortMonthNamesConfig);
      task.log("custom config: short month names = " + shortMonthNamesConfig, Project.MSG_VERBOSE);
    }
    client.configure(config);
    return client;
  }
示例#3
0
  public boolean makeFtpFile(String host, int port, String username, String pwd, String filepath) {
    FTPClient ftpClient = new FTPClient();
    boolean flag = false;
    try {
      ftpClient.connect(host, port);
    } catch (SocketException e1) {
      e1.printStackTrace();
    } catch (IOException e1) {
      e1.printStackTrace();
    }
    ftpClient.setControlEncoding("utf-8");
    FTPClientConfig conf = new FTPClientConfig(FTPClientConfig.SYST_NT);

    conf.setServerLanguageCode("zh");
    System.out.println("返回码:" + ftpClient.getReplyCode());
    if (FTPReply.isPositiveCompletion(ftpClient.getReplyCode())) {
      try {
        if (ftpClient.login(username, pwd)) {
          try {
            String str = new String(filepath);
            flag = ftpClient.makeDirectory(new String(str.getBytes("GBK"), "iso-8859-1"));
            System.out.println("ftp创建文件夹:" + flag);
            ftpClient.changeWorkingDirectory(str);
          } catch (IOException e) {
            System.out.println("连接FTP出错:" + e.getMessage());
          }
        }
      } catch (IOException e) {
        e.printStackTrace();
      }
    }
    try {
      ftpClient.disconnect();
    } catch (IOException e) {
      e.printStackTrace();
    }

    return flag;
  }
 @Test
 public void createFileEntryParserOs2() throws Exception {
   when(ftpClientConfig.getServerSystemKey()).thenReturn("bla OS/2 bla");
   FTPFileEntryParser result = OSGI_PARSER_FACTORY.createFileEntryParser(ftpClientConfig);
   assertThat(result, instanceOf(OS2FTPEntryParser.class));
 }
 @Test
 public void createFileEntryParserNotPlainWindows() throws Exception {
   when(ftpClientConfig.getServerSystemKey()).thenReturn("WINDOWS XP");
   FTPFileEntryParser result = OSGI_PARSER_FACTORY.createFileEntryParser(ftpClientConfig);
   assertThat(result, instanceOf(CompositeFileEntryParser.class));
 }
 @Before
 public void setup() {
   when(ftpClientConfig.getDefaultDateFormatStr()).thenReturn("yyyy-MM-dd");
 }