import java.io.File;
import java.util.List;
import org.apache.commons.vfs.AllFileSelector;
import org.apache.commons.vfs.FileObject;
import org.apache.commons.vfs.FileSystemException;
import org.apache.commons.vfs.FileSystemManager;
import org.apache.commons.vfs.FileSystemOptions;
import org.apache.commons.vfs.VFS;
import org.apache.commons.vfs.auth.StaticUserAuthenticator;
import org.apache.commons.vfs.impl.DefaultFileSystemConfigBuilder;
import org.apache.commons.vfs.provider.sftp.SftpFileSystemConfigBuilder;
public class FTPUtil {
/**
* 通过用户名和私钥文件方式进行ftp的连接认证
* @param username ftp用户名
* @param privateKeyfile ftp私钥文件
* @return 认证连接状态,连接成功返回true,连接失败返回false
*/
public static Boolean connect(String username, String privateKeyfile){
Boolean result = true;
StaticUserAuthenticator oAuth = new StaticUserAuthenticator("", username, "");
FileSystemOptions oOptions = new FileSystemOptions();
File oPrivateKey = null;
File identities[] = null;
oPrivateKey = new File(privateKeyfile);
identities = new File[1];
identities[0] = oPrivateKey;
try {
DefaultFileSystemConfigBuilder.getInstance().setUserAuthenticator(
oOptions, oAuth);
SftpFileSystemConfigBuilder.getInstance().setIdentities(oOptions,
identities);
SftpFileSystemConfigBuilder.getInstance().setStrictHostKeyChecking(
oOptions, "no");
} catch (FileSystemException e) {
result = false;
e.printStackTrace();
}
return result;
}
/**
* 通过用户名和密码进行连接认证
*